diff --git a/.circleci/config.yml b/.circleci/config.yml index 4534586d..9fcc9ba7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ version: 2.1 setup: true orbs: - eventuate-gradle-build-and-test: "eventuate_io/eventuate-gradle-build-and-test@0.2.1" + eventuate-gradle-build-and-test: "eventuate_io/eventuate-gradle-build-and-test@0.2.9" continuation: circleci/continuation@0.1.2 jobs: setup: diff --git a/.circleci/generate-config.sh b/.circleci/generate-config.sh index 12bbcc7d..38a9003b 100755 --- a/.circleci/generate-config.sh +++ b/.circleci/generate-config.sh @@ -3,7 +3,7 @@ cat > generated_config.yml < { compile 'org.springframework.cloud:spring-cloud-starter-zipkin' compile "io.zipkin.brave:brave-bom:4.17.1" + implementation "io.eventuate.tram.core:eventuate-tram-spring-flyway" + runtimeOnly "io.eventuate.tram.sagas:eventuate-tram-sagas-spring-flyway" + // Temporarily disable //compile "io.eventuate.tram.core:eventuate-tram-spring-cloud-sleuth-integration" diff --git a/docker-compose.yml b/docker-compose.yml index a9e55b0d..0bc3ce7c 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -77,7 +77,8 @@ services: EVENTUATE_CDC_PIPELINE_PIPELINE8_EVENTUATEDATABASESCHEMA: ftgo_delivery_service EVENTUATE_CDC_READER_READER1_TYPE: mysql-binlog - EVENTUATE_CDC_READER_READER1_DATASOURCEURL: jdbc:mysql://mysql:3306/eventuate + EVENTUATE_CDC_READER_READER1_DATASOURCEURL: jdbc:mysql://mysql:3306/ftgo_delivery_service + EVENTUATE_CDC_READER_READER1_MONITORINGSCHEMA: ftgo_delivery_service EVENTUATE_CDC_READER_READER1_DATASOURCEUSERNAME: root EVENTUATE_CDC_READER_READER1_DATASOURCEPASSWORD: rootpassword EVENTUATE_CDC_READER_READER1_DATASOURCEDRIVERCLASSNAME: com.mysql.jdbc.Driver diff --git a/dynamodblocal-init/Dockerfile b/dynamodblocal-init/Dockerfile index 0b242f5a..ef48933e 100644 --- a/dynamodblocal-init/Dockerfile +++ b/dynamodblocal-init/Dockerfile @@ -1,4 +1,4 @@ -FROM python:2.7.16-alpine3.9 +FROM python:3.11.5-alpine3.18 RUN pip install awscli --upgrade COPY create-dynamodb-tables.sh . COPY ftgo-order-history.json . diff --git a/ftgo-accounting-service/src/main/java/net/chrisrichardson/ftgo/accountingservice/main/AccountingServiceMain.java b/ftgo-accounting-service/src/main/java/net/chrisrichardson/ftgo/accountingservice/main/AccountingServiceMain.java index cb1ece2a..b3096455 100644 --- a/ftgo-accounting-service/src/main/java/net/chrisrichardson/ftgo/accountingservice/main/AccountingServiceMain.java +++ b/ftgo-accounting-service/src/main/java/net/chrisrichardson/ftgo/accountingservice/main/AccountingServiceMain.java @@ -10,6 +10,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; +import io.eventuate.tram.spring.flyway.EventuateTramFlywayMigrationConfiguration; @Configuration @EnableAutoConfiguration @@ -17,7 +18,8 @@ TramCommandProducerConfiguration.class, EventuateDriverConfiguration.class, TramJdbcKafkaConfiguration.class, - CommonSwaggerConfiguration.class}) + CommonSwaggerConfiguration.class, + EventuateTramFlywayMigrationConfiguration.class}) public class AccountingServiceMain { public static void main(String[] args) { diff --git a/ftgo-accounting-service/src/main/resources/application.properties b/ftgo-accounting-service/src/main/resources/application.properties index 70c4dcd6..66908780 100644 --- a/ftgo-accounting-service/src/main/resources/application.properties +++ b/ftgo-accounting-service/src/main/resources/application.properties @@ -15,3 +15,8 @@ spring.datasource.driver-class-name=com.mysql.jdbc.Driver eventuatelocal.kafka.bootstrap.servers=${DOCKER_HOST_IP:localhost}:9092 eventuatelocal.zookeeper.connection.string=${DOCKER_HOST_IP:localhost}:2181 + +spring.flyway.locations=classpath:flyway/{vendor} +spring.flyway.baseline-on-migrate=true +spring.flyway.baseline-version=0 + diff --git a/ftgo-consumer-service/src/main/java/net/chrisrichardson/ftgo/consumerservice/main/ConsumerServiceMain.java b/ftgo-consumer-service/src/main/java/net/chrisrichardson/ftgo/consumerservice/main/ConsumerServiceMain.java index d5b85881..3e61202a 100644 --- a/ftgo-consumer-service/src/main/java/net/chrisrichardson/ftgo/consumerservice/main/ConsumerServiceMain.java +++ b/ftgo-consumer-service/src/main/java/net/chrisrichardson/ftgo/consumerservice/main/ConsumerServiceMain.java @@ -6,9 +6,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; +import io.eventuate.tram.spring.flyway.EventuateTramFlywayMigrationConfiguration; @SpringBootApplication -@Import({ConsumerWebConfiguration.class, TramJdbcKafkaConfiguration.class, CommonSwaggerConfiguration.class}) +@Import({ConsumerWebConfiguration.class, TramJdbcKafkaConfiguration.class, CommonSwaggerConfiguration.class, EventuateTramFlywayMigrationConfiguration.class}) public class ConsumerServiceMain { public static void main(String[] args) { diff --git a/ftgo-consumer-service/src/main/resources/application.properties b/ftgo-consumer-service/src/main/resources/application.properties index 1afc72aa..677de018 100644 --- a/ftgo-consumer-service/src/main/resources/application.properties +++ b/ftgo-consumer-service/src/main/resources/application.properties @@ -15,3 +15,8 @@ spring.datasource.driver-class-name=com.mysql.jdbc.Driver eventuatelocal.kafka.bootstrap.servers=${DOCKER_HOST_IP:localhost}:9092 eventuatelocal.zookeeper.connection.string=${DOCKER_HOST_IP:localhost}:2181 + +spring.flyway.locations=classpath:flyway/{vendor} +spring.flyway.baseline-on-migrate=true +spring.flyway.baseline-version=0 + diff --git a/ftgo-delivery-service/src/main/java/net/chrisrichardson/ftgo/deliveryservice/main/DeliveryServiceMain.java b/ftgo-delivery-service/src/main/java/net/chrisrichardson/ftgo/deliveryservice/main/DeliveryServiceMain.java index 0a468e7d..3e5e9ecb 100644 --- a/ftgo-delivery-service/src/main/java/net/chrisrichardson/ftgo/deliveryservice/main/DeliveryServiceMain.java +++ b/ftgo-delivery-service/src/main/java/net/chrisrichardson/ftgo/deliveryservice/main/DeliveryServiceMain.java @@ -8,11 +8,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; +import io.eventuate.tram.spring.flyway.EventuateTramFlywayMigrationConfiguration; @Configuration @EnableAutoConfiguration @Import({DeliveryServiceMessagingConfiguration.class, DeliveryServiceWebConfiguration.class, - TramJdbcKafkaConfiguration.class, CommonSwaggerConfiguration.class + TramJdbcKafkaConfiguration.class, CommonSwaggerConfiguration.class, EventuateTramFlywayMigrationConfiguration.class }) public class DeliveryServiceMain { diff --git a/ftgo-delivery-service/src/main/resources/application.properties b/ftgo-delivery-service/src/main/resources/application.properties index 1ad5dce5..ab2ac983 100644 --- a/ftgo-delivery-service/src/main/resources/application.properties +++ b/ftgo-delivery-service/src/main/resources/application.properties @@ -21,3 +21,8 @@ spring.datasource.driver-class-name=com.mysql.jdbc.Driver eventuatelocal.kafka.bootstrap.servers=${DOCKER_HOST_IP:localhost}:9092 eventuatelocal.zookeeper.connection.string=${DOCKER_HOST_IP:localhost}:2181 + +spring.flyway.locations=classpath:flyway/{vendor} +spring.flyway.baseline-on-migrate=true +spring.flyway.baseline-version=0 + diff --git a/ftgo-kitchen-service/src/main/java/net/chrisrichardson/ftgo/kitchenservice/main/KitchenServiceMain.java b/ftgo-kitchen-service/src/main/java/net/chrisrichardson/ftgo/kitchenservice/main/KitchenServiceMain.java index ee00bfd7..24132232 100644 --- a/ftgo-kitchen-service/src/main/java/net/chrisrichardson/ftgo/kitchenservice/main/KitchenServiceMain.java +++ b/ftgo-kitchen-service/src/main/java/net/chrisrichardson/ftgo/kitchenservice/main/KitchenServiceMain.java @@ -7,12 +7,14 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; +import io.eventuate.tram.spring.flyway.EventuateTramFlywayMigrationConfiguration; @SpringBootApplication @Import({KitchenServiceWebConfiguration.class, KitchenServiceMessageHandlersConfiguration.class, TramJdbcKafkaConfiguration.class, - CommonSwaggerConfiguration.class}) + CommonSwaggerConfiguration.class, + EventuateTramFlywayMigrationConfiguration.class}) public class KitchenServiceMain { public static void main(String[] args) { diff --git a/ftgo-kitchen-service/src/main/resources/application.properties b/ftgo-kitchen-service/src/main/resources/application.properties index 09c3fd86..78a41836 100644 --- a/ftgo-kitchen-service/src/main/resources/application.properties +++ b/ftgo-kitchen-service/src/main/resources/application.properties @@ -16,3 +16,8 @@ spring.datasource.driver-class-name=com.mysql.jdbc.Driver eventuatelocal.kafka.bootstrap.servers=${DOCKER_HOST_IP:localhost}:9092 eventuatelocal.zookeeper.connection.string=${DOCKER_HOST_IP:localhost}:2181 + +spring.flyway.locations=classpath:flyway/{vendor} +spring.flyway.baseline-on-migrate=true +spring.flyway.baseline-version=0 + diff --git a/ftgo-order-service/src/main/java/net/chrisrichardson/ftgo/orderservice/main/OrderServiceMain.java b/ftgo-order-service/src/main/java/net/chrisrichardson/ftgo/orderservice/main/OrderServiceMain.java index 9249122c..13876e3d 100644 --- a/ftgo-order-service/src/main/java/net/chrisrichardson/ftgo/orderservice/main/OrderServiceMain.java +++ b/ftgo-order-service/src/main/java/net/chrisrichardson/ftgo/orderservice/main/OrderServiceMain.java @@ -11,11 +11,12 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; +import io.eventuate.tram.spring.flyway.EventuateTramFlywayMigrationConfiguration; @SpringBootApplication @Import({OrderWebConfiguration.class, OrderCommandHandlersConfiguration.class, OrderServiceMessagingConfiguration.class, TramJdbcKafkaConfiguration.class, CommonSwaggerConfiguration.class, GrpcConfiguration.class, - MicroserviceCanvasWebConfiguration.class}) + MicroserviceCanvasWebConfiguration.class, EventuateTramFlywayMigrationConfiguration.class}) @ServiceDescription(description="Manages Orders", capabilities = "Order Management") public class OrderServiceMain { diff --git a/ftgo-order-service/src/main/resources/application.properties b/ftgo-order-service/src/main/resources/application.properties index 89121df7..769bacb8 100644 --- a/ftgo-order-service/src/main/resources/application.properties +++ b/ftgo-order-service/src/main/resources/application.properties @@ -21,3 +21,8 @@ spring.datasource.driver-class-name=com.mysql.jdbc.Driver eventuatelocal.kafka.bootstrap.servers=${DOCKER_HOST_IP:localhost}:9092 eventuatelocal.zookeeper.connection.string=${DOCKER_HOST_IP:localhost}:2181 + +spring.flyway.locations=classpath:flyway/{vendor} +spring.flyway.baseline-on-migrate=true +spring.flyway.baseline-version=0 + diff --git a/ftgo-restaurant-service/src/main/java/net/chrisrichardson/ftgo/restaurantservice/RestaurantServiceMain.java b/ftgo-restaurant-service/src/main/java/net/chrisrichardson/ftgo/restaurantservice/RestaurantServiceMain.java index 557bcab9..6b3015af 100644 --- a/ftgo-restaurant-service/src/main/java/net/chrisrichardson/ftgo/restaurantservice/RestaurantServiceMain.java +++ b/ftgo-restaurant-service/src/main/java/net/chrisrichardson/ftgo/restaurantservice/RestaurantServiceMain.java @@ -8,9 +8,10 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; +import io.eventuate.tram.spring.flyway.EventuateTramFlywayMigrationConfiguration; @SpringBootApplication -@Import(TramJdbcKafkaConfiguration.class) +@Import({TramJdbcKafkaConfiguration.class, EventuateTramFlywayMigrationConfiguration.class}) public class RestaurantServiceMain { @Bean diff --git a/ftgo-restaurant-service/src/main/resources/application.properties b/ftgo-restaurant-service/src/main/resources/application.properties index b1085fc2..22f0f67d 100644 --- a/ftgo-restaurant-service/src/main/resources/application.properties +++ b/ftgo-restaurant-service/src/main/resources/application.properties @@ -16,3 +16,8 @@ spring.datasource.driver-class-name=com.mysql.jdbc.Driver eventuatelocal.kafka.bootstrap.servers=${DOCKER_HOST_IP:localhost}:9092 eventuatelocal.zookeeper.connection.string=${DOCKER_HOST_IP:localhost}:2181 + +spring.flyway.locations=classpath:flyway/{vendor} +spring.flyway.baseline-on-migrate=true +spring.flyway.baseline-version=0 + diff --git a/gradle.properties b/gradle.properties index b7ae0b3e..3ebefe2d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,14 +11,14 @@ springCloudContractDependenciesVersion=2.2.0.RELEASE springDependencyManagementPluginVersion=1.0.3.RELEASE -eventuateCommonVersion=0.15.0.RELEASE -eventuatePlatformVersion=2022.0.RELEASE +eventuateCommonVersion=0.18.0.RELEASE +eventuatePlatformVersion=2023.1.RELEASE -eventuateCommonImageVersion=0.15.0.RELEASE -eventuateMessagingKafkaImageVersion=0.15.0.RELEASE -eventuateCdcImageVersion=0.13.0.RELEASE -eventuateTramSagasImageVersion=0.19.0.RELEASE +eventuateCommonImageVersion=0.18.0.RELEASE +eventuateMessagingKafkaImageVersion=0.18.0.RELEASE +eventuateCdcImageVersion=0.16.0.RELEASE +eventuateTramSagasImageVersion=0.23.0.RELEASE protocVersion=3.20.1 grpcVersion = 1.47.0 @@ -26,13 +26,13 @@ grpcVersion = 1.47.0 swaggerUiVersion=3.23.11 eventuateExamplesBaseImageVersion=BUILD-15 -dockerComposePluginVersion=0.15.2 +dockerComposePluginVersion=0.16.12 springCloudSleuthVersion=2.2.2.RELEASE springCloudGatewayVersion=2.0.0.RELEASE micrometerVersion=1.0.4 -microserviceCanvasVersion=0.8.0.RELEASE +microserviceCanvasVersion=0.11.0.RELEASE swaggerRequestValidatorVersion=2.8.3 js2pVersion=1.0.1 -eventuatePlatformVersion=2022.0.RELEASE +eventuatePlatformVersion=2023.1.RELEASE diff --git a/mysql/Dockerfile b/mysql/Dockerfile index 3e91971b..39cefd24 100644 --- a/mysql/Dockerfile +++ b/mysql/Dockerfile @@ -1,15 +1,10 @@ ARG EVENTUATE_COMMON_VERSION -FROM eventuateio/eventuate-mysql8:$EVENTUATE_COMMON_VERSION +FROM eventuateio/eventuate-vanilla-mysql8:$EVENTUATE_COMMON_VERSION ARG EVENTUATE_COMMON_VERSION ARG EVENTUATE_SAGA_VERSION COPY compile-schema-per-service.sh /docker-entrypoint-initdb.d/4.compile-schema-per-service.sh -ADD https://raw.githubusercontent.com/eventuate-foundation/eventuate-common/$EVENTUATE_COMMON_VERSION/mysql/1.initialize-database.sql /docker-entrypoint-initdb.d/template1 -ADD https://raw.githubusercontent.com/eventuate-foundation/eventuate-common/$EVENTUATE_COMMON_VERSION/mysql/2.initialize-database.sql /docker-entrypoint-initdb.d/template2 -ADD https://raw.githubusercontent.com/eventuate-tram/eventuate-tram-sagas/$EVENTUATE_SAGA_VERSION/mysql/tram-saga-schema.sql /docker-entrypoint-initdb.d/template3 - -RUN cat /docker-entrypoint-initdb.d/template? | sed -e 's/eventuate.offset_store/offset_store/' -e /eventuate/d > /docker-entrypoint-initdb.d/template - RUN touch /docker-entrypoint-initdb.d/5.schema-per-service.sql + RUN chown mysql -R /docker-entrypoint-initdb.d diff --git a/mysql/compile-schema-per-service.sh b/mysql/compile-schema-per-service.sh index 6d1d3697..8d63ef40 100644 --- a/mysql/compile-schema-per-service.sh +++ b/mysql/compile-schema-per-service.sh @@ -10,5 +10,4 @@ do GRANT ALL PRIVILEGES ON $schema.* TO '${user}'@'%' WITH GRANT OPTION; USE $schema; END - cat /docker-entrypoint-initdb.d/template >> /docker-entrypoint-initdb.d/5.schema-per-service.sql done