Merge pull request #7 from ddd-by-examples/tech/app-group-id-changed
group id changed to dddbyexamples
This commit is contained in:
38
README.md
38
README.md
@@ -22,9 +22,9 @@ Goals of that approach:
|
||||
- exposure of high quality API.
|
||||
|
||||
Examples in code:
|
||||
- CRUD-able document [ProductDescription](product-management-adapters/src/main/java/pl/com/bottega/factory/product/management/ProductDescription.java)
|
||||
- persistence of document [ProductDescriptionEntity](product-management-adapters/src/main/java/pl/com/bottega/factory/product/management/ProductDescriptionEntity.java)
|
||||
- CRUD exposed as DAO and REST endpoint [ProductDescriptionDao](product-management-adapters/src/main/java/pl/com/bottega/factory/product/management/ProductDescriptionDao.java)
|
||||
- CRUD-able document [ProductDescription](product-management-adapters/src/main/java/pl/com/dddbyexamples/factory/product/management/ProductDescription.java)
|
||||
- persistence of document [ProductDescriptionEntity](product-management-adapters/src/main/java/pl/com/dddbyexamples/factory/product/management/ProductDescriptionEntity.java)
|
||||
- CRUD exposed as DAO and REST endpoint [ProductDescriptionDao](product-management-adapters/src/main/java/pl/com/dddbyexamples/factory/product/management/ProductDescriptionDao.java)
|
||||
|
||||
**Complex Commands (business processing)** expressed in Domain Model which is embedded in hexagonal architecture.
|
||||
|
||||
@@ -36,23 +36,23 @@ caused by technological choices or transport models from external services / con
|
||||
migration and keeping long living projects up to date with fast evolving frameworks and libraries.
|
||||
|
||||
Examples of Domain Model in code:
|
||||
- aggregate [ProductDemand](demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ProductDemand.java)
|
||||
- entity [DailyDemand](demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DailyDemand.java)
|
||||
- value object [Adjustment](demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Adjustment.java)
|
||||
- policy [ReviewPolicy](demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ReviewPolicy.java)
|
||||
- domain event [DemandedLevelsChanged](shared-kernel-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandedLevelsChanged.java)
|
||||
- aggregate [ProductDemand](demand-forecasting-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/ProductDemand.java)
|
||||
- entity [DailyDemand](demand-forecasting-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/DailyDemand.java)
|
||||
- value object [Adjustment](demand-forecasting-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/Adjustment.java)
|
||||
- policy [ReviewPolicy](demand-forecasting-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/ReviewPolicy.java)
|
||||
- domain event [DemandedLevelsChanged](shared-kernel-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/DemandedLevelsChanged.java)
|
||||
|
||||
Examples of Ports in code:
|
||||
- application service (primary port) [DemandService](demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandService.java)
|
||||
- repository (secondary port) [ProductDemandRepository](demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/ProductDemandRepository.java)
|
||||
- domain events handling (secondary port) [DemandEvents](demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandEvents.java)
|
||||
- application service (primary port) [DemandService](demand-forecasting-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/DemandService.java)
|
||||
- repository (secondary port) [ProductDemandRepository](demand-forecasting-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/ProductDemandRepository.java)
|
||||
- domain events handling (secondary port) [DemandEvents](demand-forecasting-model/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/DemandEvents.java)
|
||||
|
||||
Examples of Adapters in code:
|
||||
- REST endpoint for complex command (driving adapter)
|
||||
- command resource [DemandAdjustmentDao](demand-forecasting-adapters/src/main/java/pl/com/bottega/factory/demand/forecasting/command/DemandAdjustmentDao.java)
|
||||
- command handler [CommandsHandler](demand-forecasting-adapters/src/main/java/pl/com/bottega/factory/demand/forecasting/command/CommandsHandler.java)
|
||||
- repository implementation (driven adapter) [ProductDemandORMRepository](demand-forecasting-adapters/src/main/java/pl/com/bottega/factory/demand/forecasting/ProductDemandORMRepository.java)
|
||||
- events propagation (driven adapter) [DemandEventsPropagation](app-monolith/src/main/java/pl/com/bottega/factory/demand/forecasting/DemandEventsPropagation.java)
|
||||
- command resource [DemandAdjustmentDao](demand-forecasting-adapters/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/command/DemandAdjustmentDao.java)
|
||||
- command handler [CommandsHandler](demand-forecasting-adapters/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/command/CommandsHandler.java)
|
||||
- repository implementation (driven adapter) [ProductDemandORMRepository](demand-forecasting-adapters/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/ProductDemandORMRepository.java)
|
||||
- events propagation (driven adapter) [DemandEventsPropagation](app-monolith/src/main/java/pl/com/dddbyexamples/factory/demand/forecasting/DemandEventsPropagation.java)
|
||||
|
||||
**Complex Query** implemented as direct and simple as possible by:
|
||||
- fetching persistent read model expected by consumer, the read model is a projection of past domain event,
|
||||
@@ -67,10 +67,10 @@ Goals of that approach:
|
||||
- improves reads performance and enable horizontal scalability.
|
||||
|
||||
Examples in code:
|
||||
- projection of domain events to persistent read model [DeliveryForecastProjection](demand-forecasting-adapters/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastProjection.java)
|
||||
- REST endpoint for persistent read model [DeliveryForecastDao](demand-forecasting-adapters/src/main/java/pl/com/bottega/factory/delivery/planning/projection/DeliveryForecastDao.java)
|
||||
- read model composed at query execution time [StockForecastQuery](app-monolith/src/main/java/pl/com/bottega/factory/stock/forecast/StockForecastQuery.java)
|
||||
- REST resource processor for NOT persistent read model [StockForecastResourceProcessor](app-monolith/src/main/java/pl/com/bottega/factory/stock/forecast/ressource/StockForecastResourceProcessor.java)
|
||||
- projection of domain events to persistent read model [DeliveryForecastProjection](demand-forecasting-adapters/src/main/java/pl/com/dddbyexamples/factory/delivery/planning/projection/DeliveryForecastProjection.java)
|
||||
- REST endpoint for persistent read model [DeliveryForecastDao](demand-forecasting-adapters/src/main/java/pl/com/dddbyexamples/factory/delivery/planning/projection/DeliveryForecastDao.java)
|
||||
- read model composed at query execution time [StockForecastQuery](app-monolith/src/main/java/pl/com/dddbyexamples/factory/stock/forecast/StockForecastQuery.java)
|
||||
- REST resource processor for NOT persistent read model [StockForecastResourceProcessor](app-monolith/src/main/java/pl/com/dddbyexamples/factory/stock/forecast/ressource/StockForecastResourceProcessor.java)
|
||||
|
||||
## Hexagonal Architecture
|
||||
Only the most valuable part of that enterprise software is embedded in hexagonal architecture -
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.tools;
|
||||
package pl.com.dddbyexamples.tools;
|
||||
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.tools;
|
||||
package pl.com.dddbyexamples.tools;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.tools;
|
||||
package pl.com.dddbyexamples.tools;
|
||||
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.tools;
|
||||
package pl.com.dddbyexamples.tools;
|
||||
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.tools;
|
||||
package pl.com.dddbyexamples.tools;
|
||||
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.core.annotation.AliasFor;
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>app-monolith</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -16,33 +16,33 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>demand-forecasting-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>shortages-prediction-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>product-management-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>production-planning-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<type>test-jar</type>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
package pl.com.bottega.factory.warehouse;
|
||||
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.bottega.factory.shortages.prediction.calculation.Stock;
|
||||
|
||||
public interface WarehouseService {
|
||||
Stock forRefNo(RefNoId refNo);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory;
|
||||
package pl.com.dddbyexamples.factory;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@@ -6,8 +6,8 @@ import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import pl.com.bottega.factory.shortages.prediction.calculation.Stock;
|
||||
import pl.com.bottega.factory.warehouse.WarehouseService;
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.calculation.Stock;
|
||||
import pl.com.dddbyexamples.factory.warehouse.WarehouseService;
|
||||
|
||||
import java.time.Clock;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.delivery.planning.definition;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning.definition;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.data.rest.core.annotation.HandleAfterCreate;
|
||||
@@ -6,7 +6,7 @@ import org.springframework.data.rest.core.annotation.HandleAfterSave;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryEventHandler;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import pl.com.bottega.factory.delivery.planning.projection.DeliveryForecastProjection;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.projection.DeliveryForecastProjection;
|
||||
|
||||
@Component
|
||||
@Transactional
|
||||
@@ -1,13 +1,13 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.delivery.planning.projection.DeliveryForecastProjection;
|
||||
import pl.com.bottega.factory.demand.forecasting.command.RequiredReviewDao;
|
||||
import pl.com.bottega.factory.demand.forecasting.command.RequiredReviewEntity;
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandProjection;
|
||||
import pl.com.bottega.factory.shortages.prediction.monitoring.ShortagePredictionService;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.projection.DeliveryForecastProjection;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.command.RequiredReviewDao;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.command.RequiredReviewEntity;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandProjection;
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.monitoring.ShortagePredictionService;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.time.Instant;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.product.management;
|
||||
package pl.com.dddbyexamples.factory.product.management;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.data.rest.core.annotation.HandleAfterCreate;
|
||||
@@ -6,9 +6,9 @@ import org.springframework.data.rest.core.annotation.HandleAfterDelete;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryEventHandler;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandService;
|
||||
import pl.com.bottega.factory.stock.forecast.ressource.StockForecastDao;
|
||||
import pl.com.bottega.factory.stock.forecast.ressource.StockForecastEntity;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandService;
|
||||
import pl.com.dddbyexamples.factory.stock.forecast.ressource.StockForecastDao;
|
||||
import pl.com.dddbyexamples.factory.stock.forecast.ressource.StockForecastEntity;
|
||||
|
||||
@Component
|
||||
@Transactional
|
||||
@@ -1,13 +1,13 @@
|
||||
package pl.com.bottega.factory.shortages.prediction.calculation;
|
||||
package pl.com.dddbyexamples.factory.shortages.prediction.calculation;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.delivery.planning.projection.DeliveryForecastDao;
|
||||
import pl.com.bottega.factory.delivery.planning.projection.DeliveryForecastEntity;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.bottega.factory.production.planning.projection.ProductionOutputDao;
|
||||
import pl.com.bottega.factory.shortages.prediction.calculation.ProductionForecast.Item;
|
||||
import pl.com.bottega.factory.warehouse.WarehouseService;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.projection.DeliveryForecastDao;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.projection.DeliveryForecastEntity;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.production.planning.projection.ProductionOutputDao;
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.calculation.ProductionForecast.Item;
|
||||
import pl.com.dddbyexamples.factory.warehouse.WarehouseService;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.shortages.prediction.monitoring;
|
||||
package pl.com.dddbyexamples.factory.shortages.prediction.monitoring;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.shortages.prediction.notification.NotificationOfShortage;
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.notification.NotificationOfShortage;
|
||||
|
||||
@Lazy
|
||||
@Component
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.stock.forecast;
|
||||
package pl.com.dddbyexamples.factory.stock.forecast;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Singular;
|
||||
@@ -1,16 +1,16 @@
|
||||
package pl.com.bottega.factory.stock.forecast;
|
||||
package pl.com.dddbyexamples.factory.stock.forecast;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandDao;
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandEntity;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.bottega.factory.production.planning.projection.ProductionDailyOutputDao;
|
||||
import pl.com.bottega.factory.production.planning.projection.ProductionDailyOutputEntity;
|
||||
import pl.com.bottega.factory.shortages.prediction.calculation.Stock;
|
||||
import pl.com.bottega.factory.stock.forecast.StockForecast.StockForecastBuilder;
|
||||
import pl.com.bottega.factory.warehouse.WarehouseService;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandDao;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.production.planning.projection.ProductionDailyOutputDao;
|
||||
import pl.com.dddbyexamples.factory.production.planning.projection.ProductionDailyOutputEntity;
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.calculation.Stock;
|
||||
import pl.com.dddbyexamples.factory.stock.forecast.StockForecast.StockForecastBuilder;
|
||||
import pl.com.dddbyexamples.factory.warehouse.WarehouseService;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.time.LocalDate;
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.stock.forecast.ressource;
|
||||
package pl.com.dddbyexamples.factory.stock.forecast.ressource;
|
||||
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.config.Projection;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.ProjectionRepository;
|
||||
import pl.com.dddbyexamples.tools.ProjectionRepository;
|
||||
|
||||
@Repository
|
||||
@RepositoryRestResource(path = "stock-forecasts",
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.stock.forecast.ressource;
|
||||
package pl.com.dddbyexamples.factory.stock.forecast.ressource;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import pl.com.bottega.factory.stock.forecast.StockForecast;
|
||||
import pl.com.dddbyexamples.factory.stock.forecast.StockForecast;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
@@ -1,11 +1,11 @@
|
||||
package pl.com.bottega.factory.stock.forecast.ressource;
|
||||
package pl.com.dddbyexamples.factory.stock.forecast.ressource;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.hateoas.Resource;
|
||||
import org.springframework.hateoas.ResourceProcessor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.bottega.factory.stock.forecast.StockForecastQuery;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.stock.forecast.StockForecastQuery;
|
||||
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
@@ -0,0 +1,8 @@
|
||||
package pl.com.dddbyexamples.factory.warehouse;
|
||||
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.calculation.Stock;
|
||||
|
||||
public interface WarehouseService {
|
||||
Stock forRefNo(RefNoId refNo);
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
package pl.com.bottega.factory
|
||||
package pl.com.dddbyexamples.factory
|
||||
|
||||
import pl.com.bottega.factory.demand.forecasting.AdjustDemand
|
||||
import pl.com.bottega.factory.demand.forecasting.Adjustment
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand
|
||||
import pl.com.bottega.factory.demand.forecasting.Document
|
||||
import pl.com.bottega.factory.demand.forecasting.command.DemandAdjustmentEntity
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.bottega.factory.product.management.ProductDescription
|
||||
import pl.com.bottega.factory.product.management.ProductDescriptionEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Document
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.command.DemandAdjustmentEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescription
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescriptionEntity
|
||||
|
||||
import java.time.Instant
|
||||
import java.time.LocalDate
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.integration
|
||||
package pl.com.dddbyexamples.factory.integration
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
@@ -9,17 +9,16 @@ import org.springframework.core.ParameterizedTypeReference
|
||||
import org.springframework.hateoas.Resources
|
||||
import org.springframework.http.HttpMethod
|
||||
import org.springframework.http.ResponseEntity
|
||||
import pl.com.bottega.factory.AppConfiguration
|
||||
import pl.com.bottega.factory.ProductTrait
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandEntity
|
||||
import pl.com.bottega.factory.product.management.ProductDescriptionEntity
|
||||
import pl.com.bottega.tools.IntegrationTest
|
||||
import pl.com.dddbyexamples.factory.AppConfiguration
|
||||
import pl.com.dddbyexamples.factory.ProductTrait
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescriptionEntity
|
||||
import pl.com.dddbyexamples.tools.IntegrationTest
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.Clock
|
||||
import java.time.LocalDate
|
||||
import java.time.ZoneId
|
||||
import java.time.LocalDateF
|
||||
|
||||
import static java.time.Instant.from
|
||||
import static java.time.ZoneId.systemDefault
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.integration
|
||||
package pl.com.dddbyexamples.factory.integration
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
@@ -10,15 +10,15 @@ import org.springframework.core.ParameterizedTypeReference
|
||||
import org.springframework.hateoas.Resources
|
||||
import org.springframework.http.HttpMethod
|
||||
import org.springframework.http.ResponseEntity
|
||||
import pl.com.bottega.factory.AppConfiguration
|
||||
import pl.com.bottega.factory.ProductTrait
|
||||
import pl.com.bottega.factory.demand.forecasting.Adjustment
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand
|
||||
import pl.com.bottega.factory.demand.forecasting.command.DemandAdjustmentEntity
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandEntity
|
||||
import pl.com.bottega.factory.product.management.ProductDescriptionEntity
|
||||
import pl.com.bottega.tools.IntegrationTest
|
||||
import pl.com.dddbyexamples.factory.AppConfiguration
|
||||
import pl.com.dddbyexamples.factory.ProductTrait
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.command.DemandAdjustmentEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescriptionEntity
|
||||
import pl.com.dddbyexamples.tools.IntegrationTest
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.Clock
|
||||
@@ -1,4 +1,4 @@
|
||||
package src.test.groovy.pl.com.bottega.factory.integration
|
||||
package pl.com.dddbyexamples.factory.integration
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
@@ -11,18 +11,18 @@ import org.springframework.hateoas.Resource
|
||||
import org.springframework.hateoas.Resources
|
||||
import org.springframework.http.HttpMethod
|
||||
import org.springframework.http.ResponseEntity
|
||||
import pl.com.bottega.factory.AppConfiguration
|
||||
import pl.com.bottega.factory.ProductTrait
|
||||
import pl.com.bottega.factory.demand.forecasting.Adjustment
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand
|
||||
import pl.com.bottega.factory.demand.forecasting.command.DemandAdjustmentEntity
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandEntity
|
||||
import pl.com.bottega.factory.product.management.ProductDescriptionEntity
|
||||
import pl.com.bottega.factory.shortages.prediction.calculation.Stock
|
||||
import pl.com.bottega.factory.shortages.prediction.monitoring.persistence.ShortagesEntity
|
||||
import pl.com.bottega.factory.warehouse.WarehouseService
|
||||
import pl.com.bottega.tools.IntegrationTest
|
||||
import pl.com.dddbyexamples.factory.AppConfiguration
|
||||
import pl.com.dddbyexamples.factory.ProductTrait
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.command.DemandAdjustmentEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescriptionEntity
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.calculation.Stock
|
||||
import pl.com.dddbyexamples.factory.shortages.prediction.monitoring.persistence.ShortagesEntity
|
||||
import pl.com.dddbyexamples.factory.warehouse.WarehouseService
|
||||
import pl.com.dddbyexamples.tools.IntegrationTest
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.Clock
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>demand-forecasting-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -16,17 +16,17 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>demand-forecasting-model</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<type>test-jar</type>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.delivery.planning;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao;
|
||||
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package pl.com.bottega.factory.delivery.planning.definition;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning.definition;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Singular;
|
||||
import lombok.Value;
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.Collections;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.delivery.planning.definition;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning.definition;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
@@ -1,8 +1,8 @@
|
||||
package pl.com.bottega.factory.delivery.planning.definition;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning.definition;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import pl.com.bottega.tools.JsonConverter;
|
||||
import pl.com.dddbyexamples.tools.JsonConverter;
|
||||
|
||||
import javax.persistence.Convert;
|
||||
import javax.persistence.Entity;
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.delivery.planning.projection;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning.projection;
|
||||
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.ProjectionRepository;
|
||||
import pl.com.dddbyexamples.tools.ProjectionRepository;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.delivery.planning.projection;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning.projection;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -1,13 +1,13 @@
|
||||
package pl.com.bottega.factory.delivery.planning.projection;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning.projection;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.delivery.planning.DeliveryAutoPlanner;
|
||||
import pl.com.bottega.factory.delivery.planning.DeliveryAutoPlannerORMRepository;
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged;
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandDao;
|
||||
import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandEntity;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.DeliveryAutoPlanner;
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.DeliveryAutoPlannerORMRepository;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandDao;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.projection.CurrentDemandEntity;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.time.LocalDate;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.demand.forecasting.DailyDemand.DemandUpdated;
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DemandDao;
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DemandEntity;
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DemandEntity.DemandEntityId;
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandDao;
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandEntity;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.bottega.tools.TechnicalId;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandDao;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandEntity;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandDao;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandEntity;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.tools.TechnicalId;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.LockModeType;
|
||||
@@ -63,7 +61,7 @@ class ProductDemandORMRepository implements ProductDemandRepository {
|
||||
if (model.updates.size() > 0) {
|
||||
em.lock(root, LockModeType.OPTIMISTIC_FORCE_INCREMENT);
|
||||
}
|
||||
for (DemandUpdated updated : model.updates) {
|
||||
for (DailyDemand.DemandUpdated updated : model.updates) {
|
||||
DemandEntity entity;
|
||||
if (TechnicalId.isPersisted(updated.getId())) {
|
||||
entity = demandDao.getOne(TechnicalId.get(updated.getId()));
|
||||
@@ -90,7 +88,7 @@ class ProductDemandORMRepository implements ProductDemandRepository {
|
||||
entity.getValue().getDocumented(),
|
||||
entity.getValue().getAdjustment()))
|
||||
.orElseGet(() -> new DailyDemand(
|
||||
new DemandEntityId(refNo, date),
|
||||
new DemandEntity.DemandEntityId(refNo, date),
|
||||
reviewPolicy,
|
||||
null,
|
||||
null
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.command;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.command;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
@@ -10,8 +10,8 @@ import org.springframework.data.rest.core.annotation.RepositoryEventHandler;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandService;
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DocumentEntity;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandService;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DocumentEntity;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.time.LocalDate;
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.command;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.command;
|
||||
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.CommandRepository;
|
||||
import pl.com.dddbyexamples.tools.CommandRepository;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.command;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.command;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import pl.com.bottega.factory.demand.forecasting.AdjustDemand;
|
||||
import pl.com.bottega.tools.JsonConverter;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand;
|
||||
import pl.com.dddbyexamples.tools.JsonConverter;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.command;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.command;
|
||||
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.CommandRepository;
|
||||
import pl.com.dddbyexamples.tools.CommandRepository;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
@@ -1,12 +1,12 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.command;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.command;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import pl.com.bottega.factory.demand.forecasting.ApplyReviewDecision;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewDecision;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.bottega.tools.JsonConverter;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ApplyReviewDecision;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.dddbyexamples.tools.JsonConverter;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.persistence;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
@@ -1,12 +1,12 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.persistence;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import pl.com.bottega.factory.demand.forecasting.DailyId;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandValue;
|
||||
import pl.com.bottega.tools.JsonConverter;
|
||||
import pl.com.bottega.tools.TechnicalId;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DailyId;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandValue;
|
||||
import pl.com.dddbyexamples.tools.JsonConverter;
|
||||
import pl.com.dddbyexamples.tools.TechnicalId;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@@ -1,8 +1,8 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.persistence;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
|
||||
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.CommandRepository;
|
||||
import pl.com.dddbyexamples.tools.CommandRepository;
|
||||
|
||||
@Repository("documentDao")
|
||||
@RepositoryRestResource(path = "demand-documents",
|
||||
@@ -1,11 +1,11 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.persistence;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.annotation.LastModifiedDate;
|
||||
import pl.com.bottega.factory.demand.forecasting.Document;
|
||||
import pl.com.bottega.tools.JsonConverter;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Document;
|
||||
import pl.com.dddbyexamples.tools.JsonConverter;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.persistence;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.persistence;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.persistence;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.bottega.tools.TechnicalId;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.tools.TechnicalId;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@@ -1,11 +1,11 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.projection;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.projection;
|
||||
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.ProjectionRepository;
|
||||
import pl.com.dddbyexamples.tools.ProjectionRepository;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
@@ -1,8 +1,8 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.projection;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.projection;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
@@ -1,8 +1,8 @@
|
||||
package pl.com.bottega.factory.demand.forecasting.projection;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting.projection;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged;
|
||||
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
@@ -1,13 +1,13 @@
|
||||
package pl.com.bottega.factory;
|
||||
package pl.com.dddbyexamples.factory;
|
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandEvents;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired;
|
||||
|
||||
import java.time.Clock;
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
package pl.com.bottega.factory.delivery.planning
|
||||
package pl.com.dddbyexamples.factory.delivery.planning
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinition
|
||||
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao
|
||||
import pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinition
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionDao
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.definition.DeliveryPlannerDefinitionEntity
|
||||
import spock.lang.Specification
|
||||
|
||||
import static java.time.LocalTime.of as time
|
||||
import static pl.com.bottega.factory.delivery.planning.definition.DeliveryPlannerDefinition.of
|
||||
import static pl.com.bottega.factory.demand.forecasting.Demand.Schema.*
|
||||
import static DeliveryPlannerDefinition.of
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.Schema.*
|
||||
|
||||
@SpringBootTest
|
||||
class DeliveryPlannerDefinitionTest extends Specification {
|
||||
@@ -1,12 +1,18 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.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 pl.com.bottega.factory.demand.forecasting.persistence.DemandDao
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.DemandEntity
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandDao
|
||||
import pl.com.bottega.factory.demand.forecasting.persistence.ProductDemandEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandValue
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewPolicy
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandDao
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.DemandEntity
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandDao
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.persistence.ProductDemandEntity
|
||||
import spock.lang.Specification
|
||||
|
||||
import javax.persistence.EntityManager
|
||||
@@ -4,14 +4,14 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>demand-forecasting-model</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>shared-kernel-model</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package pl.com.bottega.factory.delivery.planning;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning;
|
||||
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.delivery.planning;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.delivery.planning;
|
||||
package pl.com.dddbyexamples.factory.delivery.planning;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Map;
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
import pl.com.bottega.factory.demand.forecasting.DailyDemand.Result;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DailyDemand.Result;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Comparator;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Value;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -43,7 +42,7 @@ class DailyDemand {
|
||||
Result.ResultBuilder result = Result.builder(id);
|
||||
State state = state();
|
||||
if (policy.reviewNeeded(this.documented, this.adjustment, documented)) {
|
||||
result.toReview(new ToReview(id,
|
||||
result.toReview(new ReviewRequired.ToReview(id,
|
||||
this.documented,
|
||||
this.adjustment.getDemand(),
|
||||
documented)
|
||||
@@ -117,7 +116,7 @@ class DailyDemand {
|
||||
return new ResultBuilder().id(id);
|
||||
}
|
||||
|
||||
static List<ToReview> reviews(List<Result> results) {
|
||||
static List<ReviewRequired.ToReview> reviews(List<Result> results) {
|
||||
return Collections.unmodifiableList(results.stream()
|
||||
.filter(result -> result.toReview != null)
|
||||
.map(result -> result.toReview)
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
public interface DemandEvents {
|
||||
void emit(DemandedLevelsChanged event);
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.HashMap;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import pl.com.bottega.factory.demand.forecasting.DailyDemand.Result;
|
||||
import pl.com.bottega.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.time.LocalDate;
|
||||
@@ -28,11 +26,11 @@ class ProductDemand {
|
||||
void adjust(AdjustDemand adjustDemand) {
|
||||
LocalDate today = LocalDate.now(clock);
|
||||
|
||||
List<Result> results = adjustDemand
|
||||
List<DailyDemand.Result> results = adjustDemand
|
||||
.forEachStartingFrom(today, this::adjustDaily);
|
||||
updates.addAll(Result.updates(results));
|
||||
updates.addAll(DailyDemand.Result.updates(results));
|
||||
|
||||
Map<DailyId, Change> changes = Result.levelChanges(results);
|
||||
Map<DailyId, Change> changes = DailyDemand.Result.levelChanges(results);
|
||||
|
||||
if (!changes.isEmpty()) {
|
||||
events.emit(new DemandedLevelsChanged(id, changes));
|
||||
@@ -42,17 +40,17 @@ class ProductDemand {
|
||||
void process(Document document) {
|
||||
LocalDate today = LocalDate.now(clock);
|
||||
|
||||
List<Result> results = document
|
||||
List<DailyDemand.Result> results = document
|
||||
.forEachStartingFrom(today, this::updateDaily);
|
||||
updates.addAll(Result.updates(results));
|
||||
updates.addAll(DailyDemand.Result.updates(results));
|
||||
|
||||
Map<DailyId, Change> changes = Result.levelChanges(results);
|
||||
Map<DailyId, Change> changes = DailyDemand.Result.levelChanges(results);
|
||||
|
||||
if (!changes.isEmpty()) {
|
||||
events.emit(new DemandedLevelsChanged(id, changes));
|
||||
}
|
||||
|
||||
List<ToReview> reviews = Result.reviews(results);
|
||||
List<ReviewRequired.ToReview> reviews = DailyDemand.Result.reviews(results);
|
||||
|
||||
if (!reviews.isEmpty()) {
|
||||
events.emit(new ReviewRequired(id, reviews));
|
||||
@@ -65,12 +63,12 @@ class ProductDemand {
|
||||
}
|
||||
}
|
||||
|
||||
private Result adjustDaily(LocalDate date, Adjustment adjustment) {
|
||||
private DailyDemand.Result adjustDaily(LocalDate date, Adjustment adjustment) {
|
||||
DailyDemand demand = demands.get(date);
|
||||
return demand.adjust(adjustment);
|
||||
}
|
||||
|
||||
private Result updateDaily(LocalDate date, Demand demand) {
|
||||
private DailyDemand.Result updateDaily(LocalDate date, Demand demand) {
|
||||
DailyDemand daily = demands.get(date);
|
||||
return daily.update(demand);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
interface ProductDemandRepository {
|
||||
ProductDemand get(String refNo);
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
public interface ReviewPolicy {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package pl.com.bottega.factory.delivery.planning
|
||||
package pl.com.dddbyexamples.factory.delivery.planning
|
||||
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.Delivery
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import spock.lang.PendingFeature
|
||||
import spock.lang.Specification
|
||||
|
||||
@@ -9,7 +10,7 @@ import java.time.LocalDateTime
|
||||
import java.time.LocalTime
|
||||
import java.util.stream.Collectors
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
|
||||
class DeliveriesSuggestionSpec extends Specification {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package pl.com.bottega.factory.delivery.planning
|
||||
package pl.com.dddbyexamples.factory.delivery.planning
|
||||
|
||||
import pl.com.bottega.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.Delivery
|
||||
import pl.com.dddbyexamples.factory.delivery.planning.DeliveryAutoPlanner
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
@@ -8,8 +10,8 @@ import java.time.LocalDateTime
|
||||
import java.time.LocalTime
|
||||
import java.util.stream.Collectors
|
||||
|
||||
import static pl.com.bottega.factory.delivery.planning.DeliveriesSuggestion.timesAndFractions
|
||||
import static pl.com.bottega.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
import static pl.com.dddbyexamples.factory.delivery.planning.DeliveriesSuggestion.timesAndFractions
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.Schema.AtDayStart
|
||||
|
||||
class DeliveryAutoPlannerSpec extends Specification {
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DailyId
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewPolicy
|
||||
|
||||
import java.time.Clock
|
||||
import java.time.Instant
|
||||
import java.time.LocalDate
|
||||
import java.time.ZoneId
|
||||
|
||||
import static DemandedLevelsChanged.Change
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
|
||||
class DailyDemandBuilder {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
@@ -1,10 +1,12 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandService
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewDecision.PICK_NEW
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision.PICK_NEW
|
||||
|
||||
class DemandServiceSpec extends Specification implements ProductDemandTrait {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import java.time.Clock
|
||||
import java.time.LocalDate
|
||||
@@ -1,5 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
@@ -1,5 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import spock.lang.Specification
|
||||
|
||||
class KeepingDailyDemandsSpec extends Specification {
|
||||
@@ -1,11 +1,21 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.bottega.factory.product.management.RefNoId
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Adjustment
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ApplyReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DailyId
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Demand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Document
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId
|
||||
|
||||
import java.time.*
|
||||
|
||||
import static DemandedLevelsChanged.Change
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged.Change
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
|
||||
class ProductDemandBuilder {
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.AdjustDemand
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ApplyReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.Document
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired
|
||||
|
||||
import java.time.LocalDate
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewRequired.ToReview
|
||||
|
||||
trait ProductDemandTrait {
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.ReviewPolicy
|
||||
import spock.lang.Specification
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.Adjustment.strong
|
||||
import static pl.com.bottega.factory.demand.forecasting.Adjustment.weak
|
||||
import static pl.com.bottega.factory.demand.forecasting.Demand.of
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Adjustment.strong
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Adjustment.weak
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.Demand.of
|
||||
|
||||
class ReviewPolicySpec extends Specification {
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package pl.com.bottega.factory.demand.forecasting
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting
|
||||
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandEvents
|
||||
import pl.com.dddbyexamples.factory.demand.forecasting.DemandedLevelsChanged
|
||||
import spock.lang.Specification
|
||||
|
||||
import java.time.LocalDate
|
||||
|
||||
import static pl.com.bottega.factory.demand.forecasting.ReviewDecision.*
|
||||
import static pl.com.dddbyexamples.factory.demand.forecasting.ReviewDecision.*
|
||||
|
||||
class ReviewProcessingSpec extends Specification implements ProductDemandTrait {
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>factory</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>product-management-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<type>test-jar</type>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.product.management;
|
||||
package pl.com.dddbyexamples.factory.product.management;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.product.management;
|
||||
package pl.com.dddbyexamples.factory.product.management;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
@@ -1,8 +1,8 @@
|
||||
package pl.com.bottega.factory.product.management;
|
||||
package pl.com.dddbyexamples.factory.product.management;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import pl.com.bottega.tools.JsonConverter;
|
||||
import pl.com.dddbyexamples.tools.JsonConverter;
|
||||
|
||||
import javax.persistence.Convert;
|
||||
import javax.persistence.Entity;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory;
|
||||
package pl.com.dddbyexamples.factory;
|
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||
@@ -1,7 +1,10 @@
|
||||
package pl.com.bottega.factory.product.management
|
||||
package pl.com.dddbyexamples.factory.product.management
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootTest
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescription
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescriptionDao
|
||||
import pl.com.dddbyexamples.factory.product.management.ProductDescriptionEntity
|
||||
import spock.lang.Specification
|
||||
|
||||
import static java.util.Collections.singletonList
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>production-planning-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<type>test-jar</type>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.production.planning.projection;
|
||||
package pl.com.dddbyexamples.factory.production.planning.projection;
|
||||
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.ProjectionRepository;
|
||||
import pl.com.dddbyexamples.tools.ProjectionRepository;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.production.planning.projection;
|
||||
package pl.com.dddbyexamples.factory.production.planning.projection;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -1,9 +1,9 @@
|
||||
package pl.com.bottega.factory.production.planning.projection;
|
||||
package pl.com.dddbyexamples.factory.production.planning.projection;
|
||||
|
||||
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
|
||||
import org.springframework.data.rest.core.annotation.RestResource;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import pl.com.bottega.tools.ProjectionRepository;
|
||||
import pl.com.dddbyexamples.tools.ProjectionRepository;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.production.planning.projection;
|
||||
package pl.com.dddbyexamples.factory.production.planning.projection;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>shared-kernel-model</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package pl.com.bottega.factory.demand.forecasting;
|
||||
package pl.com.dddbyexamples.factory.demand.forecasting;
|
||||
|
||||
import lombok.Value;
|
||||
import pl.com.bottega.factory.product.management.RefNoId;
|
||||
import pl.com.dddbyexamples.factory.product.management.RefNoId;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package pl.com.bottega.factory.product.management;
|
||||
package pl.com.dddbyexamples.factory.product.management;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -4,7 +4,7 @@
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>shortages-prediction-adapters</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -16,17 +16,17 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>shortages-prediction-model</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>pl.com.bottega</groupId>
|
||||
<groupId>pl.com.dddbyexamples</groupId>
|
||||
<artifactId>adapter-commons</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<type>test-jar</type>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user