From 9a008dcbfe4e3010d9fc5453c999cc4574365b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Michaluk?= Date: Thu, 28 Jun 2018 00:08:54 +0200 Subject: [PATCH 1/2] java10 compatibility --- .gitattributes | 2 +- .gitignore | 12 +- .travis.yml | 4 +- adapter-commons/build.gradle | 17 +- adapter-commons/pom.xml | 35 +++- .../io/dddbyexamples/tools/JsonConverter.java | 5 + .../resources/application-test.properties} | 0 .../dddbyexamples/tools/IntegrationTest.java | 18 --- app-monolith/build.gradle | 69 ++++---- app-monolith/pom.xml | 36 +---- .../CallOffDocumentIntegrationSpec.groovy | 33 ++-- .../DemandAdjustmentIntegrationSpec.groovy | 5 +- .../ShortageIntegrationSpec.groovy | 33 ++-- build.gradle | 153 ++++++++++-------- demand-forecasting-adapters/build.gradle | 8 +- demand-forecasting-adapters/pom.xml | 29 +--- .../DeliveryAutoPlannerORMRepository.java | 2 + .../definition/DeliveryPlannerDefinition.java | 1 + .../DeliveryPlannerDefinitionSpec.groovy | 3 + .../ProductDemandORMRepositorySpec.groovy | 10 +- demand-forecasting-model/build.gradle | 8 +- demand-forecasting-model/pom.xml | 9 +- .../demand/forecasting/DemandsFake.groovy | 15 +- gradle.properties | 2 +- lombok.config | 1 - manifest.yml | 2 +- pom.xml | 2 +- product-management-adapters/build.gradle | 9 +- product-management-adapters/pom.xml | 21 +-- .../ProductDescriptionPersistenceSpec.groovy | 4 +- production-planning-adapters/build.gradle | 9 +- production-planning-adapters/pom.xml | 26 +-- sc-pipelines.yml | 2 +- settings.gradle | 2 +- shared-kernel-model/build.gradle | 6 +- shared-kernel-model/pom.xml | 11 +- shortages-prediction-adapters/build.gradle | 8 +- shortages-prediction-adapters/pom.xml | 27 +--- ...hortagePredictionProcessORMRepository.java | 8 +- ...ePredictionProcessORMRepositorySpec.groovy | 48 +++--- ...DaoTest.groovy => ShortagesDaoSpec.groovy} | 39 ++--- shortages-prediction-model/build.gradle | 6 +- shortages-prediction-model/pom.xml | 9 +- 43 files changed, 328 insertions(+), 421 deletions(-) rename adapter-commons/src/{test/resources/application.properties => main/resources/application-test.properties} (100%) delete mode 100644 adapter-commons/src/test/java/io/dddbyexamples/tools/IntegrationTest.java rename shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/persistence/{ShortagesDaoTest.groovy => ShortagesDaoSpec.groovy} (57%) diff --git a/.gitattributes b/.gitattributes index 53d70c3..34ceb76 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,4 +4,4 @@ # Denote all files that are truly binary and should not be modified. *.png binary -*.jpg binary \ No newline at end of file +*.jpg binary diff --git a/.gitignore b/.gitignore index e7f0c88..5cd220a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,17 @@ +## travis-ci +!.travis.yml +!.codecov.yml + ## maven target/ target-test/ +!.mvn ## linux .* !.git* -*~ ## windows @@ -20,7 +24,7 @@ Desktop.ini $RECYCLE.BIN/ -## osx +## macOS .DS_Store .AppleDouble .LSOverride @@ -85,9 +89,9 @@ tramp *.un~ Session.vim .netrwhist -*~ build +out/ +build/ .gradle *.log -out \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 8b54da6..ba47bd2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ language: java jdk: - - oraclejdk8 + - openjdk8 + - openjdk9 + - openjdk10 after_success: - bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" diff --git a/adapter-commons/build.gradle b/adapter-commons/build.gradle index a6ff458..bdec774 100644 --- a/adapter-commons/build.gradle +++ b/adapter-commons/build.gradle @@ -1,7 +1,12 @@ dependencies { - compile("org.springframework.boot:spring-boot-starter-data-jpa") - compile("org.springframework.boot:spring-boot-starter-data-rest") - compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.8.5") - compile("org.liquibase:liquibase-core:3.5.5") - testCompile("org.springframework.boot:spring-boot-starter-test") -} \ No newline at end of file + compile("org.springframework.boot:spring-boot-starter-data-jpa") + compile("org.springframework.boot:spring-boot-starter-data-rest") + compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.6") + compile("com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.6") + compile("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.6") + compile("org.liquibase:liquibase-core:3.6.1") + compile("javax.xml.bind:jaxb-api:2.3.0") + runtime("org.postgresql:postgresql:42.2.2") + + testCompile("org.springframework.boot:spring-boot-starter-test") +} diff --git a/adapter-commons/pom.xml b/adapter-commons/pom.xml index 656a552..2787291 100644 --- a/adapter-commons/pom.xml +++ b/adapter-commons/pom.xml @@ -15,6 +15,11 @@ + + org.projectlombok + lombok + 1.18.0 + org.springframework.boot spring-boot-starter-data-jpa @@ -26,18 +31,34 @@ com.fasterxml.jackson.datatype jackson-datatype-jsr310 - 2.8.5 + 2.9.6 + + + org.postgresql + postgresql + 42.2.2 + runtime + + + org.liquibase + liquibase-core + 3.6.1 + + + net.bytebuddy + byte-buddy + 1.8.12 + + + javax.xml.bind + jaxb-api + 2.3.0 org.springframework.boot spring-boot-starter-test test - - org.liquibase - liquibase-core - 3.5.5 - @@ -46,7 +67,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 diff --git a/adapter-commons/src/main/java/io/dddbyexamples/tools/JsonConverter.java b/adapter-commons/src/main/java/io/dddbyexamples/tools/JsonConverter.java index c7b355d..722eed7 100644 --- a/adapter-commons/src/main/java/io/dddbyexamples/tools/JsonConverter.java +++ b/adapter-commons/src/main/java/io/dddbyexamples/tools/JsonConverter.java @@ -1,11 +1,14 @@ package io.dddbyexamples.tools; import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; import javax.persistence.AttributeConverter; import java.io.IOException; @@ -20,6 +23,8 @@ public abstract class JsonConverter implements AttributeConverter .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) .enable(SerializationFeature.WRITE_DATES_WITH_ZONE_ID) .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) + .registerModule(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES)) + .registerModule(new Jdk8Module()) .registerModule(new JavaTimeModule()); private final Class type; diff --git a/adapter-commons/src/test/resources/application.properties b/adapter-commons/src/main/resources/application-test.properties similarity index 100% rename from adapter-commons/src/test/resources/application.properties rename to adapter-commons/src/main/resources/application-test.properties diff --git a/adapter-commons/src/test/java/io/dddbyexamples/tools/IntegrationTest.java b/adapter-commons/src/test/java/io/dddbyexamples/tools/IntegrationTest.java deleted file mode 100644 index 8d412b7..0000000 --- a/adapter-commons/src/test/java/io/dddbyexamples/tools/IntegrationTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.dddbyexamples.tools; - -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.core.annotation.AliasFor; -import org.springframework.test.context.ActiveProfiles; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -@SpringBootTest -@ActiveProfiles -public @interface IntegrationTest { - @AliasFor(annotation = ActiveProfiles.class, attribute = "profiles") String[] activeProfiles() default {"test"}; -} diff --git a/app-monolith/build.gradle b/app-monolith/build.gradle index b46b266..2392472 100644 --- a/app-monolith/build.gradle +++ b/app-monolith/build.gradle @@ -1,45 +1,38 @@ apply plugin: 'groovy' dependencies { - compile(project(":demand-forecasting-adapters")) - compile(project(":shortages-prediction-adapters")) - compile(project(":product-management-adapters")) - compile(project(":production-planning-adapters")) - compile(project(":adapter-commons")) + compile(project(":demand-forecasting-adapters")) + compile(project(":shortages-prediction-adapters")) + compile(project(":product-management-adapters")) + compile(project(":production-planning-adapters")) + compile(project(":adapter-commons")) - compile("org.projectlombok:lombok:1.16.18") - compile("org.springframework.boot:spring-boot-starter-data-jpa") - compile("org.springframework.boot:spring-boot-starter-web") - compile("org.springframework.boot:spring-boot-starter-data-rest") - compile("org.springframework.data:spring-data-rest-hal-browser") - compile("org.springframework.boot:spring-boot-starter-cloud-connectors") - compile("org.liquibase:liquibase-core:3.5.5") - compile("net.bytebuddy:byte-buddy:1.7.9") + compile("org.springframework.boot:spring-boot-starter-data-jpa") + compile("org.springframework.boot:spring-boot-starter-web") + compile("org.springframework.boot:spring-boot-starter-data-rest") + compile("org.springframework.data:spring-data-rest-hal-browser") + compile("org.springframework.boot:spring-boot-starter-cloud-connectors") - runtime("org.cloudfoundry:auto-reconfiguration:1.12.0.RELEASE") - runtime("org.postgresql:postgresql:42.1.4") + runtime("org.cloudfoundry:auto-reconfiguration:1.12.0.RELEASE") - testCompile("org.springframework.boot:spring-boot-starter-test") - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") - testCompile("org.spockframework:spock-spring:1.1-groovy-2.4") - testCompile("com.h2database:h2:1.4.194") - // TODO: Because of this there's no up to date check from Gradle - testCompile(project(":adapter-commons").sourceSets.test.output) + testCompile("org.springframework.boot:spring-boot-starter-test") + testCompile("org.spockframework:spock-spring:1.1-groovy-2.4") + testCompile("com.h2database:h2:1.4.197") } [bootJar, bootRun]*.enabled = true jar.enabled = false task stubsJar(type: Jar) { - classifier = "stubs" - into("META-INF/${project.rootProject.ext.projectGroupId}/${project.rootProject.ext.projectArtifactId}/${project.rootProject.ext.projectVersion}/shortages-prediction-adapters/mappings") { - include('**/*.*') - from(project(":shortages-prediction-adapters").projectDir.absolutePath + "/target/generated-snippets/stubs") - } - into("META-INF/${project.rootProject.ext.projectGroupId}/${project.rootProject.ext.projectArtifactId}/${project.rootProject.ext.projectVersion}/shortages-prediction-adapters/contracts") { - include('**/*.groovy') - from(project(":shortages-prediction-adapters").projectDir.absolutePath + "/target/generated-snippets/contracts") - } + classifier = "stubs" + into("META-INF/${project.rootProject.ext.projectGroupId}/${project.rootProject.ext.projectArtifactId}/${project.rootProject.ext.projectVersion}/shortages-prediction-adapters/mappings") { + include('**/*.*') + from(project(":shortages-prediction-adapters").projectDir.absolutePath + "/target/generated-snippets/stubs") + } + into("META-INF/${project.rootProject.ext.projectGroupId}/${project.rootProject.ext.projectArtifactId}/${project.rootProject.ext.projectVersion}/shortages-prediction-adapters/contracts") { + include('**/*.groovy') + from(project(":shortages-prediction-adapters").projectDir.absolutePath + "/target/generated-snippets/contracts") + } } // we need the tests to pass to build the stub jar @@ -47,16 +40,16 @@ stubsJar.dependsOn(test) stubsJar.dependsOn(project(":shortages-prediction-adapters").test) artifacts { - archives stubsJar + archives stubsJar } jar.dependsOn(stubsJar) publishing { - publications { - stubs(MavenPublication) { - artifactId project.name - artifact stubsJar - } - } -} \ No newline at end of file + publications { + stubs(MavenPublication) { + artifactId project.name + artifact stubsJar + } + } +} diff --git a/app-monolith/pom.xml b/app-monolith/pom.xml index 83c734d..d36b9f6 100644 --- a/app-monolith/pom.xml +++ b/app-monolith/pom.xml @@ -22,7 +22,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -60,7 +60,6 @@ production-planning-adapters 1.0-SNAPSHOT - pl.com.dddbyexamples adapter-commons @@ -74,12 +73,6 @@ test - - org.projectlombok - lombok - 1.16.18 - provided - org.springframework.boot spring-boot-starter-data-jpa @@ -101,12 +94,6 @@ spring-boot-starter-test test - - org.postgresql - postgresql - 42.1.4 - runtime - org.cloudfoundry auto-reconfiguration @@ -117,11 +104,6 @@ org.springframework.boot spring-boot-starter-cloud-connectors - - org.liquibase - liquibase-core - 3.5.5 - org.spockframework spock-core @@ -137,14 +119,9 @@ com.h2database h2 - 1.4.194 + 1.4.197 test - - net.bytebuddy - byte-buddy - 1.7.9 - @@ -166,10 +143,11 @@ org.apache.maven.plugins maven-compiler-plugin + 3.7.0 - - -parameters - + 1.8 + 1.8 + -parameters @@ -187,7 +165,7 @@ maven-surefire-plugin - 2.20.1 + ${maven-surefire.version} false diff --git a/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/CallOffDocumentIntegrationSpec.groovy b/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/CallOffDocumentIntegrationSpec.groovy index b558caf..34e66ed 100644 --- a/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/CallOffDocumentIntegrationSpec.groovy +++ b/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/CallOffDocumentIntegrationSpec.groovy @@ -1,5 +1,10 @@ package io.dddbyexamples.factory.integration +import io.dddbyexamples.factory.AppConfiguration +import io.dddbyexamples.factory.ProductTrait +import io.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity +import io.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity +import io.dddbyexamples.factory.product.management.ProductDescriptionEntity import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.web.client.TestRestTemplate @@ -9,12 +14,7 @@ import org.springframework.core.ParameterizedTypeReference import org.springframework.hateoas.Resources import org.springframework.http.HttpMethod import org.springframework.http.ResponseEntity -import io.dddbyexamples.factory.AppConfiguration -import io.dddbyexamples.factory.ProductTrait -import io.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity -import io.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity -import io.dddbyexamples.factory.product.management.ProductDescriptionEntity -import io.dddbyexamples.tools.IntegrationTest +import org.springframework.test.context.ActiveProfiles import spock.lang.Specification import java.time.Clock @@ -24,28 +24,29 @@ import static java.time.Instant.from import static java.time.ZoneId.systemDefault import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT -@IntegrationTest +@ActiveProfiles("test") @SpringBootTest(webEnvironment = RANDOM_PORT, classes = [AppConfiguration, TestConfiguration]) class CallOffDocumentIntegrationSpec extends Specification implements ProductTrait { public static final String PRODUCT_REF_NO = "3009000" public static final LocalDate ANY_DATE = LocalDate.now() - @Autowired TestRestTemplate restTemplate + @Autowired + TestRestTemplate restTemplate def 'receiving call off document should create new product demands for subsequent days'() { given: - productDescriptionIsSuccessfullyCreated(PRODUCT_REF_NO) + productDescriptionIsSuccessfullyCreated(PRODUCT_REF_NO) when: - callOffDocumentIsSuccessfullyRequested(PRODUCT_REF_NO, ANY_DATE, 100, 200, 300) + callOffDocumentIsSuccessfullyRequested(PRODUCT_REF_NO, ANY_DATE, 100, 200, 300) and: - Collection demands = - demandsForProductStartingFromDateAreRequested(PRODUCT_REF_NO, ANY_DATE.minusDays(1)) + Collection demands = + demandsForProductStartingFromDateAreRequested(PRODUCT_REF_NO, ANY_DATE.minusDays(1)) then: - demands.size() == 3 - thereIsDemand(demands, ANY_DATE, 100) - thereIsDemand(demands, ANY_DATE.plusDays(1), 200) - thereIsDemand(demands, ANY_DATE.plusDays(2), 300) + demands.size() == 3 + thereIsDemand(demands, ANY_DATE, 100) + thereIsDemand(demands, ANY_DATE.plusDays(1), 200) + thereIsDemand(demands, ANY_DATE.plusDays(2), 300) } void productDescriptionIsSuccessfullyCreated(String refNo) { diff --git a/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/DemandAdjustmentIntegrationSpec.groovy b/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/DemandAdjustmentIntegrationSpec.groovy index 0cbef43..5f4af90 100644 --- a/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/DemandAdjustmentIntegrationSpec.groovy +++ b/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/DemandAdjustmentIntegrationSpec.groovy @@ -5,6 +5,7 @@ import org.springframework.boot.test.context.SpringBootTest import org.springframework.boot.test.web.client.TestRestTemplate import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration +import org.springframework.context.annotation.Profile import org.springframework.core.ParameterizedTypeReference import org.springframework.hateoas.Resources import org.springframework.http.HttpMethod @@ -17,7 +18,7 @@ import io.dddbyexamples.factory.demand.forecasting.command.DemandAdjustmentEntit import io.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity import io.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity import io.dddbyexamples.factory.product.management.ProductDescriptionEntity -import io.dddbyexamples.tools.IntegrationTest +import org.springframework.test.context.ActiveProfiles import spock.lang.Specification import java.time.Clock @@ -27,7 +28,7 @@ import static java.time.Instant.from import static java.time.ZoneId.systemDefault import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT -@IntegrationTest +@ActiveProfiles("test") @SpringBootTest(webEnvironment = RANDOM_PORT, classes = [AppConfiguration, TestConfiguration]) class DemandAdjustmentIntegrationSpec extends Specification implements ProductTrait { diff --git a/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/ShortageIntegrationSpec.groovy b/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/ShortageIntegrationSpec.groovy index 1ef92f7..dc10905 100644 --- a/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/ShortageIntegrationSpec.groovy +++ b/app-monolith/src/test/groovy/io/dddbyexamples/factory/integration/ShortageIntegrationSpec.groovy @@ -1,14 +1,5 @@ package io.dddbyexamples.factory.integration -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.web.client.TestRestTemplate -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Configuration -import org.springframework.core.ParameterizedTypeReference -import org.springframework.hateoas.Resource -import org.springframework.http.HttpMethod -import org.springframework.http.ResponseEntity import io.dddbyexamples.factory.AppConfiguration import io.dddbyexamples.factory.ProductTrait import io.dddbyexamples.factory.demand.forecasting.Adjustment @@ -19,7 +10,16 @@ import io.dddbyexamples.factory.product.management.ProductDescriptionEntity import io.dddbyexamples.factory.shortages.prediction.calculation.Stock import io.dddbyexamples.factory.shortages.prediction.monitoring.persistence.ShortagesEntity import io.dddbyexamples.factory.warehouse.WarehouseService -import io.dddbyexamples.tools.IntegrationTest +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.context.SpringBootTest +import org.springframework.boot.test.web.client.TestRestTemplate +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.core.ParameterizedTypeReference +import org.springframework.hateoas.Resource +import org.springframework.http.HttpMethod +import org.springframework.http.ResponseEntity +import org.springframework.test.context.ActiveProfiles import spock.lang.Specification import java.time.Clock @@ -29,7 +29,7 @@ import static java.time.Instant.from import static java.time.ZoneId.systemDefault import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT -@IntegrationTest +@ActiveProfiles("test") @SpringBootTest(webEnvironment = RANDOM_PORT, classes = [AppConfiguration, TestConfiguration]) class ShortageIntegrationSpec extends Specification implements ProductTrait { @@ -37,17 +37,18 @@ class ShortageIntegrationSpec extends Specification implements ProductTrait { public static final LocalDate ANY_DATE = LocalDate.now() public static final int PRODUCT_STOCK_LEVEL = 100 - @Autowired TestRestTemplate restTemplate + @Autowired + TestRestTemplate restTemplate def 'adjustment that exceeds current stock level should result in shortage'() { given: - productDescriptionIsSuccessfullyCreated(PRODUCT_REF_NO) + productDescriptionIsSuccessfullyCreated(PRODUCT_REF_NO) when: - callOffDocumentIsSuccessfullyRequested(PRODUCT_REF_NO, ANY_DATE, PRODUCT_STOCK_LEVEL) + callOffDocumentIsSuccessfullyRequested(PRODUCT_REF_NO, ANY_DATE, PRODUCT_STOCK_LEVEL) and: - adjustmentIsSuccessfullyRequested(ANY_DATE.plusDays(1), 200) + adjustmentIsSuccessfullyRequested(ANY_DATE.plusDays(1), 200) then: - thereIsShortage(PRODUCT_REF_NO, ANY_DATE.plusDays(1), 200) + thereIsShortage(PRODUCT_REF_NO, ANY_DATE.plusDays(1), 200) } diff --git a/build.gradle b/build.gradle index e6f5bc3..e1e0e57 100644 --- a/build.gradle +++ b/build.gradle @@ -1,94 +1,105 @@ buildscript { - repositories { - mavenCentral() - mavenLocal() - maven { url "http://repo.spring.io/snapshot" } - maven { url "http://repo.spring.io/milestone" } - maven { url "http://repo.spring.io/release" } - } - dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE" - // TODO: Snapshots are used only for testing purposes - classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:2.0.0.BUILD-SNAPSHOT" - } + repositories { + mavenCentral() + mavenLocal() + maven { url "http://repo.spring.io/snapshot" } + maven { url "http://repo.spring.io/milestone" } + maven { url "http://repo.spring.io/release" } + } + dependencies { + classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE" + // TODO: Snapshots are used only for testing purposes + classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:2.0.0.BUILD-SNAPSHOT" + } } allprojects { - apply plugin: 'java' - apply plugin: 'org.springframework.boot' - apply plugin: 'io.spring.dependency-management' - apply plugin: 'maven-publish' + apply plugin: 'java' + apply plugin: 'org.springframework.boot' + apply plugin: 'io.spring.dependency-management' + apply plugin: 'maven-publish' - group = 'pl.com.dddbyexamples' - version = getProp('newVersion') ?: '1.0-SNAPSHOT' + group = 'pl.com.dddbyexamples' + version = getProp('newVersion') ?: '1.0-SNAPSHOT' - apply from: project.rootDir.absolutePath + '/gradle/pipeline.gradle' + apply from: project.rootDir.absolutePath + '/gradle/pipeline.gradle' - bootJar.enabled = false - jar.enabled = true - bootRun.enabled = false + bootJar.enabled = false + jar.enabled = true + bootRun.enabled = false - dependencyManagement { - imports { - mavenBom "org.springframework.cloud:spring-cloud-dependencies:${BOM_VERSION}" - } - } + compileJava.options.compilerArgs << '-parameters' + compileTestJava.options.compilerArgs << '-parameters' - repositories { - mavenCentral() - mavenLocal() - if (getProp("M2_LOCAL")) { - maven { - url getProp("M2_LOCAL") - } - } - maven { url "http://repo.spring.io/snapshot" } - maven { url "http://repo.spring.io/milestone" } - maven { url "http://repo.spring.io/release" } - } + dependencies { + compileOnly('org.projectlombok:lombok:1.18.0') + annotationProcessor('org.projectlombok:lombok:1.18.0') - publishing { - repositories { - maven { - url getProp('REPO_WITH_BINARIES_FOR_UPLOAD') ?: - getProp('REPO_WITH_BINARIES') ?: 'http://localhost:8081/artifactory/libs-release-local' - credentials { - username getProp('M2_SETTINGS_REPO_USERNAME') ?: 'admin' - password getProp('M2_SETTINGS_REPO_PASSWORD') ?: 'password' - } - } - } - publications { - mavenJava(MavenPublication) { - artifactId project.name - from components.java - } - } - } + testCompile("org.spockframework:spock-core:1.1-groovy-2.4") + testCompile("net.bytebuddy:byte-buddy:1.8.12") + } - tasks.withType(Test) { - testLogging { - events "started", "passed", "skipped", "failed" - } - } + dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${BOM_VERSION}" + } + } + + repositories { + mavenCentral() + mavenLocal() + if (getProp("M2_LOCAL")) { + maven { + url getProp("M2_LOCAL") + } + } + maven { url "http://repo.spring.io/snapshot" } + maven { url "http://repo.spring.io/milestone" } + maven { url "http://repo.spring.io/release" } + } + + publishing { + repositories { + maven { + url getProp('REPO_WITH_BINARIES_FOR_UPLOAD') ?: + getProp('REPO_WITH_BINARIES') ?: 'http://localhost:8081/artifactory/libs-release-local' + credentials { + username getProp('M2_SETTINGS_REPO_USERNAME') ?: 'admin' + password getProp('M2_SETTINGS_REPO_PASSWORD') ?: 'password' + } + } + } + publications { + mavenJava(MavenPublication) { + artifactId project.name + from components.java + } + } + } + + tasks.withType(Test) { + testLogging { + events "started", "passed", "skipped", "failed" + } + } } ext { - projectGroupId = project.group - // In a multi-module env we can specify which project is the one that produces the fat-jar - projectArtifactId = "app-monolith" - projectVersion = project.version + projectGroupId = project.group + // In a multi-module env we can specify which project is the one that produces the fat-jar + projectArtifactId = "app-monolith" + projectVersion = project.version } apply plugin: "java" [bootJar, bootRun]*.enabled = false task wrapper(type: Wrapper) { - gradleVersion = '4.8' + gradleVersion = '4.8' } String getProp(String propName) { - return hasProperty(propName) ? - (getProperty(propName) ?: System.properties[propName]) : System.properties[propName] ?: - System.getenv(propName) -} \ No newline at end of file + return hasProperty(propName) ? + (getProperty(propName) ?: System.properties[propName]) : System.properties[propName] ?: + System.getenv(propName) +} diff --git a/demand-forecasting-adapters/build.gradle b/demand-forecasting-adapters/build.gradle index 80cbe04..972d3df 100644 --- a/demand-forecasting-adapters/build.gradle +++ b/demand-forecasting-adapters/build.gradle @@ -4,13 +4,7 @@ dependencies { compile(project(":demand-forecasting-model")) compile(project(":adapter-commons")) - compile("org.projectlombok:lombok:1.16.18") - - runtime("org.postgresql:postgresql:42.1.4") - testCompile("org.springframework.boot:spring-boot-starter-test") - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") testCompile("org.spockframework:spock-spring:1.1-groovy-2.4") testCompile("com.h2database:h2:1.4.194") - testCompile(project(":adapter-commons").sourceSets.test.output) -} \ No newline at end of file +} diff --git a/demand-forecasting-adapters/pom.xml b/demand-forecasting-adapters/pom.xml index c1126bf..c1791fc 100644 --- a/demand-forecasting-adapters/pom.xml +++ b/demand-forecasting-adapters/pom.xml @@ -33,23 +33,11 @@ test - - org.projectlombok - lombok - 1.16.18 - provided - org.springframework.boot spring-boot-starter-test test - - org.postgresql - postgresql - 42.1.4 - runtime - org.spockframework spock-core @@ -62,12 +50,6 @@ 1.1-groovy-2.4 test - - net.bytebuddy - byte-buddy - 1.7.9 - test - com.h2database h2 @@ -83,7 +65,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -118,15 +100,16 @@ org.apache.maven.plugins maven-compiler-plugin + 3.7.0 - - -parameters - + 1.8 + 1.8 + -parameters maven-surefire-plugin - 2.20.1 + 2.22.0 false diff --git a/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/DeliveryAutoPlannerORMRepository.java b/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/DeliveryAutoPlannerORMRepository.java index b2e3328..6365da0 100644 --- a/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/DeliveryAutoPlannerORMRepository.java +++ b/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/DeliveryAutoPlannerORMRepository.java @@ -1,5 +1,6 @@ package io.dddbyexamples.factory.delivery.planning; +import io.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinition; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import io.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao; @@ -17,6 +18,7 @@ public class DeliveryAutoPlannerORMRepository { return new DeliveryAutoPlanner(refNo, dao.findById(refNo) .map(DeliveryPlannerDefinitionEntity::getDefinition) + .filter(def -> !def.isDisabled()) .map(x -> x.map(DeliveriesSuggestion::timesAndFractions)) .orElse(Collections.emptyMap())); } diff --git a/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/definition/DeliveryPlannerDefinition.java b/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/definition/DeliveryPlannerDefinition.java index 2387171..4f0cb98 100644 --- a/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/definition/DeliveryPlannerDefinition.java +++ b/demand-forecasting-adapters/src/main/java/io/dddbyexamples/factory/delivery/planning/definition/DeliveryPlannerDefinition.java @@ -18,6 +18,7 @@ import java.util.stream.Collectors; public class DeliveryPlannerDefinition { @Singular private final Map> definitions; + private final boolean disabled; public static Map of(LocalTime time, Double fraction) { return Collections.singletonMap(time, fraction); diff --git a/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/delivery/planning/DeliveryPlannerDefinitionSpec.groovy b/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/delivery/planning/DeliveryPlannerDefinitionSpec.groovy index 1243708..146b8b8 100644 --- a/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/delivery/planning/DeliveryPlannerDefinitionSpec.groovy +++ b/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/delivery/planning/DeliveryPlannerDefinitionSpec.groovy @@ -5,12 +5,15 @@ import org.springframework.boot.test.context.SpringBootTest import io.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinition import io.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao import io.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity +import org.springframework.test.context.ActiveProfiles +import org.springframework.test.context.TestPropertySource import spock.lang.Specification import static java.time.LocalTime.of as time import static io.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinition.of import static io.dddbyexamples.factory.demand.forecasting.Demand.Schema.* +@ActiveProfiles("test") @SpringBootTest class DeliveryPlannerDefinitionSpec extends Specification { diff --git a/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/ProductDemandORMRepositorySpec.groovy b/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/ProductDemandORMRepositorySpec.groovy index a1d0b23..3f5a34b 100644 --- a/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/ProductDemandORMRepositorySpec.groovy +++ b/demand-forecasting-adapters/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/ProductDemandORMRepositorySpec.groovy @@ -1,24 +1,22 @@ package io.dddbyexamples.factory.demand.forecasting import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.test.annotation.Commit +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest import io.dddbyexamples.factory.demand.forecasting.persistence.DemandDao import io.dddbyexamples.factory.demand.forecasting.persistence.DemandEntity import io.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandDao import io.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandEntity +import org.springframework.test.context.ActiveProfiles import spock.lang.Specification import javax.persistence.EntityManager -import javax.transaction.Transactional import java.time.Clock import java.time.Instant import java.time.LocalDate import java.time.ZoneId -@SpringBootTest -@Transactional -@Commit +@ActiveProfiles("test") +@DataJpaTest class ProductDemandORMRepositorySpec extends Specification { def clock = Clock.fixed(Instant.now(), ZoneId.systemDefault()) diff --git a/demand-forecasting-model/build.gradle b/demand-forecasting-model/build.gradle index 9a0d5b7..aad9908 100644 --- a/demand-forecasting-model/build.gradle +++ b/demand-forecasting-model/build.gradle @@ -1,10 +1,6 @@ apply plugin: 'groovy' +apply plugin: "jacoco" dependencies { compile(project(":shared-kernel-model")) - compile(project(":adapter-commons")) - - compile("org.projectlombok:lombok:1.16.18") - - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") -} \ No newline at end of file +} diff --git a/demand-forecasting-model/pom.xml b/demand-forecasting-model/pom.xml index d3fccd2..0b71b18 100644 --- a/demand-forecasting-model/pom.xml +++ b/demand-forecasting-model/pom.xml @@ -16,7 +16,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -42,7 +42,7 @@ org.projectlombok lombok - 1.16.18 + 1.18.0 provided @@ -72,6 +72,7 @@ + addTestSources compileTests @@ -79,7 +80,7 @@ maven-surefire-plugin - 2.20.1 + 2.22.0 false @@ -91,7 +92,7 @@ org.jacoco jacoco-maven-plugin - 0.8.0 + 0.8.1 diff --git a/demand-forecasting-model/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/DemandsFake.groovy b/demand-forecasting-model/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/DemandsFake.groovy index 3f5e5f2..8a4fd95 100644 --- a/demand-forecasting-model/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/DemandsFake.groovy +++ b/demand-forecasting-model/src/test/groovy/io/dddbyexamples/factory/demand/forecasting/DemandsFake.groovy @@ -12,14 +12,6 @@ class DemandsFake extends Demands { fetch = { date -> nothingDemanded(date) } } - DailyDemand nothingDemanded(LocalDate date) { - def demand = builder.reset() - .date(date) - .build() - fetched.put(date, demand) - demand - } - DailyDemand demanded(LocalDate date, long level) { def demand = builder.date(date) .demandedLevels(level) @@ -48,4 +40,11 @@ class DemandsFake extends Demands { fetched.put(date, demand) demand } + + private DailyDemand nothingDemanded(LocalDate date) { + def demand = builder.reset() + .date(date) + .build() + demand + } } diff --git a/gradle.properties b/gradle.properties index 57ed1c5..d765e1c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ org.gradle.daemon=false -BOM_VERSION=Finchley.BUILD-SNAPSHOT \ No newline at end of file +BOM_VERSION=Finchley.BUILD-SNAPSHOT diff --git a/lombok.config b/lombok.config index b10dcbd..f3fa06b 100644 --- a/lombok.config +++ b/lombok.config @@ -1,3 +1,2 @@ config.stopBubbling=true lombok.addLombokGeneratedAnnotation=true -#lombok.anyConstructor.addConstructorProperties=true diff --git a/manifest.yml b/manifest.yml index f53f453..c74ba21 100644 --- a/manifest.yml +++ b/manifest.yml @@ -5,4 +5,4 @@ applications: - app-monolith-db env: JAVA_OPTS: -Djava.security.egd=file:///dev/urandom - TRUST_CERTS: api.run.pivotal.io \ No newline at end of file + TRUST_CERTS: api.run.pivotal.io diff --git a/pom.xml b/pom.xml index 53feef2..17269a7 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 diff --git a/product-management-adapters/build.gradle b/product-management-adapters/build.gradle index fcab307..b35cf98 100644 --- a/product-management-adapters/build.gradle +++ b/product-management-adapters/build.gradle @@ -3,14 +3,7 @@ apply plugin: 'groovy' dependencies { compile(project(":adapter-commons")) - compile("org.projectlombok:lombok:1.16.18") - compile("net.bytebuddy:byte-buddy:1.7.9") - - runtime("org.postgresql:postgresql:42.1.4") - testCompile("org.springframework.boot:spring-boot-starter-test") - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") testCompile("org.spockframework:spock-spring:1.1-groovy-2.4") testCompile("com.h2database:h2:1.4.194") - testCompile(project(":adapter-commons").sourceSets.test.output) -} \ No newline at end of file +} diff --git a/product-management-adapters/pom.xml b/product-management-adapters/pom.xml index 0a457eb..36be95f 100644 --- a/product-management-adapters/pom.xml +++ b/product-management-adapters/pom.xml @@ -28,12 +28,6 @@ test - - org.projectlombok - lombok - 1.16.18 - provided - org.springframework.boot spring-boot-starter-test @@ -42,7 +36,7 @@ org.postgresql postgresql - 42.1.4 + 42.2.2 runtime @@ -60,7 +54,7 @@ net.bytebuddy byte-buddy - 1.7.9 + 1.8.12 com.h2database @@ -78,7 +72,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -113,15 +107,16 @@ org.apache.maven.plugins maven-compiler-plugin + 3.7.0 - - -parameters - + 1.8 + 1.8 + -parameters maven-surefire-plugin - 2.20.1 + 2.22.0 false diff --git a/product-management-adapters/src/test/groovy/io/dddbyexamples/factory/product/management/ProductDescriptionPersistenceSpec.groovy b/product-management-adapters/src/test/groovy/io/dddbyexamples/factory/product/management/ProductDescriptionPersistenceSpec.groovy index 437911a..ff6fa39 100644 --- a/product-management-adapters/src/test/groovy/io/dddbyexamples/factory/product/management/ProductDescriptionPersistenceSpec.groovy +++ b/product-management-adapters/src/test/groovy/io/dddbyexamples/factory/product/management/ProductDescriptionPersistenceSpec.groovy @@ -1,5 +1,6 @@ package io.dddbyexamples.factory.product.management +import org.springframework.test.context.ActiveProfiles import spock.lang.Ignore import org.springframework.beans.factory.annotation.Autowired @@ -8,9 +9,8 @@ import spock.lang.Specification import static java.util.Collections.singletonList -// TODO: Unignore -@Ignore @SpringBootTest +@ActiveProfiles("test") class ProductDescriptionPersistenceSpec extends Specification { @Autowired diff --git a/production-planning-adapters/build.gradle b/production-planning-adapters/build.gradle index fcab307..b35cf98 100644 --- a/production-planning-adapters/build.gradle +++ b/production-planning-adapters/build.gradle @@ -3,14 +3,7 @@ apply plugin: 'groovy' dependencies { compile(project(":adapter-commons")) - compile("org.projectlombok:lombok:1.16.18") - compile("net.bytebuddy:byte-buddy:1.7.9") - - runtime("org.postgresql:postgresql:42.1.4") - testCompile("org.springframework.boot:spring-boot-starter-test") - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") testCompile("org.spockframework:spock-spring:1.1-groovy-2.4") testCompile("com.h2database:h2:1.4.194") - testCompile(project(":adapter-commons").sourceSets.test.output) -} \ No newline at end of file +} diff --git a/production-planning-adapters/pom.xml b/production-planning-adapters/pom.xml index 4c79ad8..9162abb 100644 --- a/production-planning-adapters/pom.xml +++ b/production-planning-adapters/pom.xml @@ -28,23 +28,11 @@ test - - org.projectlombok - lombok - 1.16.18 - provided - org.springframework.boot spring-boot-starter-test test - - org.postgresql - postgresql - 42.1.4 - runtime - org.spockframework spock-core @@ -57,11 +45,6 @@ 1.1-groovy-2.4 test - - net.bytebuddy - byte-buddy - 1.7.9 - @@ -71,7 +54,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -93,10 +76,11 @@ org.apache.maven.plugins maven-compiler-plugin + 3.7.0 - - -parameters - + 1.8 + 1.8 + -parameters diff --git a/sc-pipelines.yml b/sc-pipelines.yml index 6e694ac..fb1d52e 100644 --- a/sc-pipelines.yml +++ b/sc-pipelines.yml @@ -15,4 +15,4 @@ stage: type: broker broker: elephantsql plan: turtle - useExisting: true \ No newline at end of file + useExisting: true diff --git a/settings.gradle b/settings.gradle index 7e6ab6e..be39c41 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,4 +7,4 @@ include "demand-forecasting-adapters" include "shortages-prediction-model" include "shortages-prediction-adapters" include "product-management-adapters" -include "production-planning-adapters" \ No newline at end of file +include "production-planning-adapters" diff --git a/shared-kernel-model/build.gradle b/shared-kernel-model/build.gradle index 3e358d9..804f813 100644 --- a/shared-kernel-model/build.gradle +++ b/shared-kernel-model/build.gradle @@ -1,7 +1,5 @@ apply plugin: 'groovy' +apply plugin: "jacoco" dependencies { - compile("org.projectlombok:lombok:1.16.18") - - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") -} \ No newline at end of file +} diff --git a/shared-kernel-model/pom.xml b/shared-kernel-model/pom.xml index ec69191..b1c9717 100644 --- a/shared-kernel-model/pom.xml +++ b/shared-kernel-model/pom.xml @@ -16,7 +16,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -37,8 +37,8 @@ org.projectlombok lombok - 1.16.18 - compile + 1.18.0 + provided org.spockframework @@ -67,6 +67,7 @@ + addTestSources compileTests @@ -74,7 +75,7 @@ maven-surefire-plugin - 2.20.1 + 2.22.0 false @@ -86,7 +87,7 @@ org.jacoco jacoco-maven-plugin - 0.8.0 + 0.8.1 diff --git a/shortages-prediction-adapters/build.gradle b/shortages-prediction-adapters/build.gradle index 2e7950c..54f6fbe 100644 --- a/shortages-prediction-adapters/build.gradle +++ b/shortages-prediction-adapters/build.gradle @@ -4,18 +4,12 @@ dependencies { compile(project(":shortages-prediction-model")) compile(project(":adapter-commons")) - compile("org.projectlombok:lombok:1.16.18") - - runtime("org.postgresql:postgresql:42.1.4") - testCompile("org.springframework.boot:spring-boot-starter-test") - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") testCompile("org.spockframework:spock-spring:1.1-groovy-2.4") testCompile("org.springframework.cloud:spring-cloud-starter-contract-stub-runner") testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier") testCompile("org.springframework.restdocs:spring-restdocs-mockmvc") testCompile("com.h2database:h2:1.4.194") - testCompile(project(":adapter-commons").sourceSets.test.output) } if (gradle.startParameter.taskRequests.any { it.args.any { it.contains("apiCompatibility") } }) { @@ -50,4 +44,4 @@ if (gradle.startParameter.taskRequests.any { it.args.any { it.contains("apiCompa } } -} \ No newline at end of file +} diff --git a/shortages-prediction-adapters/pom.xml b/shortages-prediction-adapters/pom.xml index bc149fe..2552fe7 100644 --- a/shortages-prediction-adapters/pom.xml +++ b/shortages-prediction-adapters/pom.xml @@ -34,23 +34,11 @@ test - - org.projectlombok - lombok - 1.16.18 - provided - org.springframework.boot spring-boot-starter-test test - - org.postgresql - postgresql - 42.1.4 - runtime - org.spockframework spock-core @@ -63,12 +51,6 @@ 1.1-groovy-2.4 test - - net.bytebuddy - byte-buddy - 1.7.9 - test - org.springframework.cloud spring-cloud-starter-contract-stub-runner @@ -113,7 +95,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -148,10 +130,11 @@ org.apache.maven.plugins maven-compiler-plugin + 3.7.0 - - -parameters - + 1.8 + 1.8 + -parameters diff --git a/shortages-prediction-adapters/src/main/java/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepository.java b/shortages-prediction-adapters/src/main/java/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepository.java index b11292a..2d06de5 100644 --- a/shortages-prediction-adapters/src/main/java/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepository.java +++ b/shortages-prediction-adapters/src/main/java/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepository.java @@ -44,26 +44,24 @@ class ShortagePredictionProcessORMRepository implements ShortagePredictionProces .flatMap(dao::findById) .orElseGet(() -> dao.save(new ShortagesEntity(refNo.getRefNo()))); entity.setShortage(event.getShortage()); - - events.emit(event); } private void delete(ShortageSolved event) { TechnicalId.get(event.getRefNo()) .ifPresent(dao::deleteById); - - events.emit(event); - } + } private class EventsHandler implements ShortageEvents { @Override public void emit(NewShortage event) { save(event); + events.emit(event); } @Override public void emit(ShortageSolved event) { delete(event); + events.emit(event); } } } diff --git a/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepositorySpec.groovy b/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepositorySpec.groovy index accbfb6..25b22ee 100644 --- a/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepositorySpec.groovy +++ b/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/ShortagePredictionProcessORMRepositorySpec.groovy @@ -1,27 +1,21 @@ package io.dddbyexamples.factory.shortages.prediction.monitoring -import spock.lang.Ignore - -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.test.annotation.Commit import io.dddbyexamples.factory.product.management.RefNoId import io.dddbyexamples.factory.shortages.prediction.Shortage import io.dddbyexamples.factory.shortages.prediction.calculation.ShortageForecasts import io.dddbyexamples.factory.shortages.prediction.monitoring.persistence.ShortagesDao import io.dddbyexamples.factory.shortages.prediction.monitoring.persistence.ShortagesEntity +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest +import org.springframework.test.context.ActiveProfiles import spock.lang.Specification -import javax.transaction.Transactional import java.time.LocalDateTime import static io.dddbyexamples.factory.shortages.prediction.monitoring.NewShortage.After.DemandChanged -@SpringBootTest -@Transactional -@Commit -//TODO: Unignore -@Ignore +@DataJpaTest +@ActiveProfiles("test") class ShortagePredictionProcessORMRepositorySpec extends Specification { def now = LocalDateTime.now() @@ -42,54 +36,54 @@ class ShortagePredictionProcessORMRepositorySpec extends Specification { def "provides process instance when no shortage persisted"() { when: - def process = fetchProcess() + def process = fetchProcess() then: - shortagesCurrentlyKnownBy(process) == noShortages() + shortagesCurrentlyKnownBy(process) == noShortages() } def "provides process instance with last known shortage"() { given: - persistedShortage(someShortages()) + persistedShortage(someShortages()) when: - def process = fetchProcess() + def process = fetchProcess() then: - shortagesCurrentlyKnownBy(process) == someShortages() + shortagesCurrentlyKnownBy(process) == someShortages() } def "persists first shortage"() { when: - def process = fetchProcess() - processEmitsNewShortage(process, someShortages()) + def process = fetchProcess() + processEmitsNewShortage(process, someShortages()) then: - shortagesCurrentlyPersisted() == someShortages() + shortagesCurrentlyPersisted() == someShortages() } def "updates previous shortage"() { given: - persistedShortage(someOldShortages()) + persistedShortage(someOldShortages()) when: - def process = fetchProcess() - processEmitsNewShortage(process, someShortages()) + def process = fetchProcess() + processEmitsNewShortage(process, someShortages()) then: - shortagesCurrentlyPersisted() == someShortages() + shortagesCurrentlyPersisted() == someShortages() } def "deletes solved shortage"() { given: - persistedShortage(someShortages()) + persistedShortage(someShortages()) when: - def process = fetchProcess() - processEmitsShortageSolved(process) + def process = fetchProcess() + processEmitsShortageSolved(process) then: - noShortagesPersisted() + noShortagesPersisted() } def persistedShortage(Shortage shortages) { diff --git a/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/persistence/ShortagesDaoTest.groovy b/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/persistence/ShortagesDaoSpec.groovy similarity index 57% rename from shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/persistence/ShortagesDaoTest.groovy rename to shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/persistence/ShortagesDaoSpec.groovy index 39b9489..2abc578 100644 --- a/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/persistence/ShortagesDaoTest.groovy +++ b/shortages-prediction-adapters/src/test/groovy/io/dddbyexamples/factory/shortages/prediction/monitoring/persistence/ShortagesDaoSpec.groovy @@ -1,24 +1,16 @@ package io.dddbyexamples.factory.shortages.prediction.monitoring.persistence -import groovy.transform.CompileStatic -import org.mockito.Mockito -import spock.lang.Specification - -import org.springframework.beans.BeansException import org.springframework.beans.factory.annotation.Autowired -import org.springframework.beans.factory.config.BeanPostProcessor -import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase import org.springframework.boot.test.autoconfigure.restdocs.AutoConfigureRestDocs import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc import org.springframework.boot.test.context.SpringBootTest import org.springframework.cloud.contract.wiremock.restdocs.SpringCloudContractRestDocs -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.ComponentScan -import org.springframework.context.annotation.Configuration import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation +import org.springframework.test.context.ActiveProfiles import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.result.MockMvcResultMatchers +import spock.lang.Specification import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.MOCK import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get @@ -31,18 +23,21 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder // would love to get rid of this @AutoConfigureTestDatabase @AutoConfigureRestDocs -class ShortagesDaoTest extends Specification { +@ActiveProfiles("test") +class ShortagesDaoSpec extends Specification { - @Autowired ShortagesDao shortagesDao - @Autowired MockMvc mockMvc + @Autowired + ShortagesDao shortagesDao + @Autowired + MockMvc mockMvc - def "should find ref by no"() { - given: - Config.defaultStubbing(shortagesDao) - expect: - mockMvc.perform(get("/shortages?refNo=1")) - .andExpect(MockMvcResultMatchers.status().isOk()) - .andDo(MockMvcRestDocumentation.document("find_ref_by_no", - SpringCloudContractRestDocs.dslContract())) - } + def "should find ref by no"() { + given: + Config.defaultStubbing(shortagesDao) + expect: + mockMvc.perform(get("/shortages?refNo=1")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcRestDocumentation.document("find_ref_by_no", + SpringCloudContractRestDocs.dslContract())) + } } diff --git a/shortages-prediction-model/build.gradle b/shortages-prediction-model/build.gradle index 62c080d..aad9908 100644 --- a/shortages-prediction-model/build.gradle +++ b/shortages-prediction-model/build.gradle @@ -1,8 +1,6 @@ apply plugin: 'groovy' +apply plugin: "jacoco" dependencies { compile(project(":shared-kernel-model")) - compile("org.projectlombok:lombok:1.16.18") - - testCompile("org.spockframework:spock-core:1.1-groovy-2.4") -} \ No newline at end of file +} diff --git a/shortages-prediction-model/pom.xml b/shortages-prediction-model/pom.xml index 5c38db9..0ed97e3 100644 --- a/shortages-prediction-model/pom.xml +++ b/shortages-prediction-model/pom.xml @@ -16,7 +16,7 @@ http://localhost:8081/artifactory/libs-release-local http://localhost:8081/artifactory/libs-snapshot-local http://localhost:8081/artifactory/libs-release-local - 2.21.0 + 2.22.0 @@ -42,7 +42,7 @@ org.projectlombok lombok - 1.16.18 + 1.18.0 compile @@ -72,6 +72,7 @@ + addTestSources compileTests @@ -79,7 +80,7 @@ maven-surefire-plugin - 2.20.1 + 2.22.0 false @@ -91,7 +92,7 @@ org.jacoco jacoco-maven-plugin - 0.8.0 + 0.8.1 From 7977afb1799bdbb08539bac3d45709b350c3923d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Michaluk?= Date: Thu, 28 Jun 2018 00:11:50 +0200 Subject: [PATCH 2/2] droping maven --- .mvn/wrapper/MavenWrapperDownloader.java | 110 -------- .mvn/wrapper/maven-wrapper.jar | Bin 48336 -> 0 bytes .mvn/wrapper/maven-wrapper.properties | 1 - adapter-commons/pom.xml | 227 --------------- app-monolith/pom.xml | 324 --------------------- demand-forecasting-adapters/pom.xml | 248 ----------------- demand-forecasting-model/pom.xml | 237 ---------------- mvnw | 286 ------------------- mvnw.cmd | 161 ----------- pom.xml | 48 ---- product-management-adapters/pom.xml | 254 ----------------- production-planning-adapters/pom.xml | 212 -------------- shared-kernel-model/pom.xml | 232 ---------------- shortages-prediction-adapters/pom.xml | 340 ----------------------- shortages-prediction-model/pom.xml | 237 ---------------- 15 files changed, 2917 deletions(-) delete mode 100755 .mvn/wrapper/MavenWrapperDownloader.java delete mode 100755 .mvn/wrapper/maven-wrapper.jar delete mode 100755 .mvn/wrapper/maven-wrapper.properties delete mode 100644 adapter-commons/pom.xml delete mode 100644 app-monolith/pom.xml delete mode 100644 demand-forecasting-adapters/pom.xml delete mode 100644 demand-forecasting-model/pom.xml delete mode 100755 mvnw delete mode 100755 mvnw.cmd delete mode 100644 pom.xml delete mode 100644 product-management-adapters/pom.xml delete mode 100644 production-planning-adapters/pom.xml delete mode 100644 shared-kernel-model/pom.xml delete mode 100644 shortages-prediction-adapters/pom.xml delete mode 100644 shortages-prediction-model/pom.xml diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java deleted file mode 100755 index d475a89..0000000 --- a/.mvn/wrapper/MavenWrapperDownloader.java +++ /dev/null @@ -1,110 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. -*/ - -import java.net.*; -import java.io.*; -import java.nio.channels.*; -import java.util.Properties; - -public class MavenWrapperDownloader { - - /** - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. - */ - private static final String DEFAULT_DOWNLOAD_URL = - "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar"; - - /** - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to - * use instead of the default one. - */ - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = - ".mvn/wrapper/maven-wrapper.properties"; - - /** - * Path where the maven-wrapper.jar will be saved to. - */ - private static final String MAVEN_WRAPPER_JAR_PATH = - ".mvn/wrapper/maven-wrapper.jar"; - - /** - * Name of the property which should be used to override the default download url for the wrapper. - */ - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; - - public static void main(String args[]) { - System.out.println("- Downloader started"); - File baseDirectory = new File(args[0]); - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); - - // If the maven-wrapper.properties exists, read it and check if it contains a custom - // wrapperUrl parameter. - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); - String url = DEFAULT_DOWNLOAD_URL; - if(mavenWrapperPropertyFile.exists()) { - FileInputStream mavenWrapperPropertyFileInputStream = null; - try { - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); - Properties mavenWrapperProperties = new Properties(); - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); - } catch (IOException e) { - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); - } finally { - try { - if(mavenWrapperPropertyFileInputStream != null) { - mavenWrapperPropertyFileInputStream.close(); - } - } catch (IOException e) { - // Ignore ... - } - } - } - System.out.println("- Downloading from: : " + url); - - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); - if(!outputFile.getParentFile().exists()) { - if(!outputFile.getParentFile().mkdirs()) { - System.out.println( - "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); - } - } - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); - try { - downloadFileFromURL(url, outputFile); - System.out.println("Done"); - System.exit(0); - } catch (Throwable e) { - System.out.println("- Error downloading"); - e.printStackTrace(); - System.exit(1); - } - } - - private static void downloadFileFromURL(String urlString, File destination) throws Exception { - URL website = new URL(urlString); - ReadableByteChannel rbc; - rbc = Channels.newChannel(website.openStream()); - FileOutputStream fos = new FileOutputStream(destination); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - fos.close(); - rbc.close(); - } - -} diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar deleted file mode 100755 index 08ebbb67f088c53eac9a4e2cb019b93f69a1e49c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48336 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 H*Ps3mB7Q<; diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties deleted file mode 100755 index a5fcc11..0000000 --- a/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip \ No newline at end of file diff --git a/adapter-commons/pom.xml b/adapter-commons/pom.xml deleted file mode 100644 index 2787291..0000000 --- a/adapter-commons/pom.xml +++ /dev/null @@ -1,227 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - org.projectlombok - lombok - 1.18.0 - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-data-rest - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - 2.9.6 - - - org.postgresql - postgresql - 42.2.2 - runtime - - - org.liquibase - liquibase-core - 3.6.1 - - - net.bytebuddy - byte-buddy - 1.8.12 - - - javax.xml.bind - jaxb-api - 2.3.0 - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.0.2 - - - - test-jar - - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/app-monolith/pom.xml b/app-monolith/pom.xml deleted file mode 100644 index d36b9f6..0000000 --- a/app-monolith/pom.xml +++ /dev/null @@ -1,324 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - app-monolith - 1.0-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - 1.8 - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - pl.com.dddbyexamples - demand-forecasting-adapters - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - shortages-prediction-adapters - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - product-management-adapters - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - production-planning-adapters - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - test-jar - test - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-data-rest - - - org.springframework.data - spring-data-rest-hal-browser - - - org.springframework.boot - spring-boot-starter-test - test - - - org.cloudfoundry - auto-reconfiguration - 1.12.0.RELEASE - provided - - - org.springframework.boot - spring-boot-starter-cloud-connectors - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - org.spockframework - spock-spring - 1.1-groovy-2.4 - test - - - com.h2database - h2 - 1.4.197 - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - app - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - maven-surefire-plugin - ${maven-surefire.version} - - false - - **/*Spec.java - **/*Test.java - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - stub - prepare-package - - single - - false - - true - - ${basedir}/src/assembly/stub.xml - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/demand-forecasting-adapters/pom.xml b/demand-forecasting-adapters/pom.xml deleted file mode 100644 index c1791fc..0000000 --- a/demand-forecasting-adapters/pom.xml +++ /dev/null @@ -1,248 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - demand-forecasting-adapters - 1.0-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - pl.com.dddbyexamples - demand-forecasting-model - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - test-jar - test - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - org.spockframework - spock-spring - 1.1-groovy-2.4 - test - - - com.h2database - h2 - 1.4.197 - test - - - - - 1.8 - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - maven-surefire-plugin - 2.22.0 - - false - - **/*Spec.java - **/*Test.java - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/demand-forecasting-model/pom.xml b/demand-forecasting-model/pom.xml deleted file mode 100644 index 0b71b18..0000000 --- a/demand-forecasting-model/pom.xml +++ /dev/null @@ -1,237 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - demand-forecasting-model - jar - 1.0-SNAPSHOT - - - 1.8 - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - pl.com.dddbyexamples - shared-kernel-model - 1.0-SNAPSHOT - - - org.projectlombok - lombok - 1.18.0 - provided - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - maven-surefire-plugin - 2.22.0 - - false - - **/*Spec.java - **/*Test.java - - - - - org.jacoco - jacoco-maven-plugin - 0.8.1 - - - - prepare-agent - - - - report - test - - report - - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/mvnw b/mvnw deleted file mode 100755 index 961a825..0000000 --- a/mvnw +++ /dev/null @@ -1,286 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar" - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - wget "$jarUrl" -O "$wrapperJarPath" - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - curl -o "$wrapperJarPath" "$jarUrl" - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd deleted file mode 100755 index 830073a..0000000 --- a/mvnw.cmd +++ /dev/null @@ -1,161 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar" -FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - echo Found %WRAPPER_JAR% -) else ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')" - echo Finished downloading %WRAPPER_JAR% -) -@REM End of extension - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 17269a7..0000000 --- a/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - factory - pom - 1.0-SNAPSHOT - - - app-monolith - adapter-commons - shared-kernel-model - demand-forecasting-model - demand-forecasting-adapters - shortages-prediction-model - shortages-prediction-adapters - product-management-adapters - production-planning-adapters - - - - ${project.basedir} - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - diff --git a/product-management-adapters/pom.xml b/product-management-adapters/pom.xml deleted file mode 100644 index 36be95f..0000000 --- a/product-management-adapters/pom.xml +++ /dev/null @@ -1,254 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - product-management-adapters - 1.0-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - test-jar - test - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.postgresql - postgresql - 42.2.2 - runtime - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - org.spockframework - spock-spring - 1.1-groovy-2.4 - test - - - net.bytebuddy - byte-buddy - 1.8.12 - - - com.h2database - h2 - 1.4.197 - test - - - - - - 1.8 - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - maven-surefire-plugin - 2.22.0 - - false - - **/*Spec.java - **/*Test.java - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/production-planning-adapters/pom.xml b/production-planning-adapters/pom.xml deleted file mode 100644 index 9162abb..0000000 --- a/production-planning-adapters/pom.xml +++ /dev/null @@ -1,212 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - production-planning-adapters - 1.0-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - test-jar - test - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - org.spockframework - spock-spring - 1.1-groovy-2.4 - test - - - - - 1.8 - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/shared-kernel-model/pom.xml b/shared-kernel-model/pom.xml deleted file mode 100644 index b1c9717..0000000 --- a/shared-kernel-model/pom.xml +++ /dev/null @@ -1,232 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - shared-kernel-model - jar - 1.0-SNAPSHOT - - - 1.8 - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - org.projectlombok - lombok - 1.18.0 - provided - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - maven-surefire-plugin - 2.22.0 - - false - - **/*Spec.java - **/*Test.java - - - - - org.jacoco - jacoco-maven-plugin - 0.8.1 - - - - prepare-agent - - - - report - test - - report - - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/shortages-prediction-adapters/pom.xml b/shortages-prediction-adapters/pom.xml deleted file mode 100644 index 2552fe7..0000000 --- a/shortages-prediction-adapters/pom.xml +++ /dev/null @@ -1,340 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - shortages-prediction-adapters - 1.0-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - - pl.com.dddbyexamples - shortages-prediction-model - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - - - pl.com.dddbyexamples - adapter-commons - 1.0-SNAPSHOT - test-jar - test - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - org.spockframework - spock-spring - 1.1-groovy-2.4 - test - - - org.springframework.cloud - spring-cloud-starter-contract-stub-runner - test - - - org.springframework.cloud - spring-cloud-starter-contract-verifier - test - - - org.springframework.restdocs - spring-restdocs-mockmvc - test - - - com.h2database - h2 - 1.4.197 - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - 1.8 - Finchley.BUILD-SNAPSHOT - 2.0.0.BUILD-SNAPSHOT - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.0.0 - - - add-test-source - generate-test-sources - - add-test-source - - - - ${project.build.directory}/generated-test-sources/contracts - - - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - - - ${project.build.directory}/generated-test-sources/contracts/ - - **/*.groovy - - - - ${project.basedir}/src/test/groovy/ - - **/*.groovy - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - true - - - - org.springframework.cloud - spring-cloud-contract-maven-plugin - ${spring-cloud-contract.version} - true - - - ${repo.with.binaries} - REMOTE - - - - ${project.groupId} - app-monolith - stubs - ${latest.production.version} - - SPOCK - EXPLICIT - io.dddbyexamples.factory.shortages.prediction.monitoring.persistence.BaseClass - io.dddbyexamples.contracttests - META-INF/${project.groupId}/app-monolith/${latest.production.version}/shortages-prediction-adapters/contracts - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - diff --git a/shortages-prediction-model/pom.xml b/shortages-prediction-model/pom.xml deleted file mode 100644 index 0ed97e3..0000000 --- a/shortages-prediction-model/pom.xml +++ /dev/null @@ -1,237 +0,0 @@ - - - 4.0.0 - - pl.com.dddbyexamples - shortages-prediction-model - jar - 1.0-SNAPSHOT - - - 1.8 - - artifactory-local - http://localhost:8081/artifactory/libs-release-local - http://localhost:8081/artifactory/libs-snapshot-local - http://localhost:8081/artifactory/libs-release-local - 2.22.0 - - - - - - ${distribution.management.release.id} - Release Repository - ${distribution.management.release.url} - - - ${distribution.management.release.id} - Snapshot Repository - ${distribution.management.snapshot.url} - - - - - - pl.com.dddbyexamples - shared-kernel-model - 1.0-SNAPSHOT - - - org.projectlombok - lombok - 1.18.0 - compile - - - org.spockframework - spock-core - 1.1-groovy-2.4 - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - -parameters - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.6 - - - - addTestSources - compileTests - - - - - - maven-surefire-plugin - 2.22.0 - - false - - **/*Spec.java - **/*Test.java - - - - - org.jacoco - jacoco-maven-plugin - 0.8.1 - - - - prepare-agent - - - - report - test - - report - - - - - - - - - - default - - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - **/*Test*.*> - **/*Spec*.* - - - **/smoke/** - **/e2e/** - - - - - - - - - apicompatibility - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - contracttests/**/*Test*.* - contracttests/**/*Spec*.* - - - - - - - - - smoke - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - smoke/**/*Tests.java - smoke/**/*Test.java - smoke/**/*Spec.* - - - - - - - - - e2e - - false - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire.version} - - - e2e/**/*Tests.java - e2e/**/*Test.java - e2e/**/*Spec.* - - - - - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot - - true - - - true - - - - -