diff --git a/hexagonal/pom.xml b/hexagonal/pom.xml deleted file mode 100644 index 020a48ce58..0000000000 --- a/hexagonal/pom.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.5.3 - - - com.example - demo - 0.0.1-SNAPSHOT - demo - Demo project for Spring Boot - - 11 - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - com.h2database - h2 - runtime - - - org.springframework.boot - spring-boot-starter-web - - - - org.projectlombok - lombok - true - - - javax.xml.bind - jaxb-api - 2.3.0 - - - org.junit.jupiter - junit-jupiter-engine - 5.7.2 - test - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - - - - - - diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/Application.java b/hexagonal/src/main/java/com/baeldung/hexagonal/Application.java deleted file mode 100644 index eb762f615d..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/Application.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.baeldung.hexagonal; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class Application { - - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ItemTransportObject.java b/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ItemTransportObject.java deleted file mode 100644 index bcf38e99a0..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ItemTransportObject.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.baeldung.hexagonal.adapter.in; - -import lombok.Data; - -@Data -class ItemTransportObject { - private String name; - private Integer quantity; - private String category; -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartController.java b/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartController.java deleted file mode 100644 index ffaa1a1a08..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/in/ShoppingCartController.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.baeldung.hexagonal.adapter.in; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import com.baeldung.hexagonal.domain.ShoppingCartService; - -@RestController -@RequestMapping("/shopping-cart") -public class ShoppingCartController { - - @Autowired - ShoppingCartService shoppingCartService; - - @GetMapping - public Float getTotalCartValue() { - return shoppingCartService.getTotalCartValue(); - } - - @PostMapping() - public void addItem(@RequestBody ItemTransportObject item) { - shoppingCartService.addItem(item.getName(), item.getQuantity()); - } -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/out/Product.java b/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/out/Product.java deleted file mode 100644 index 00a330b50a..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/out/Product.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.baeldung.hexagonal.adapter.out; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; - -import com.baeldung.hexagonal.domain.CartItem; - -import lombok.Data; - -@Entity -@Data -public class Product { - - @Id - public final Integer id; - @Column - public final String name; - @Column - public final Float price; - - public CartItem toItem() { - return new CartItem(name, price); - } - -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/out/ProductCrudRepository.java b/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/out/ProductCrudRepository.java deleted file mode 100644 index 3708a1a19d..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/adapter/out/ProductCrudRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.baeldung.hexagonal.adapter.out; - -import org.springframework.data.repository.CrudRepository; -import org.springframework.stereotype.Repository; - -import com.baeldung.hexagonal.domain.ports.ProductRepository; - -@Repository -public interface ProductCrudRepository extends CrudRepository, ProductRepository { - - Product findByName(String name); -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/CartItem.java b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/CartItem.java deleted file mode 100644 index 1e0fcfb50e..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/CartItem.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.baeldung.hexagonal.domain; - -import lombok.Data; -import lombok.NonNull; - -@Data -public class CartItem { - - @NonNull - private final String name; - private final Float price; - -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCart.java b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCart.java deleted file mode 100644 index 949090eb80..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCart.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.baeldung.hexagonal.domain; - -import java.util.Map; - -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -class ShoppingCart { - - private final Map itemToQuantity; - - Float getTotalCartValue() { - return itemToQuantity.entrySet() - .stream() - .map(item -> item.getKey() - .getPrice() * item.getValue()) - .reduce(0f, Float::sum); - } - - void addItem(CartItem cartItem, Integer quantity) { - if (quantity < 0) - throw new IllegalArgumentException("Quantity should not be negative."); - itemToQuantity.put(cartItem, itemToQuantity.getOrDefault(cartItem, 0) + quantity); - } -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCartService.java b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCartService.java deleted file mode 100644 index 022020e298..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ShoppingCartService.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.hexagonal.domain; - -public interface ShoppingCartService { - - Float getTotalCartValue(); - - void addItem(String name, Integer quantity); -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/SimpleShoppingCartService.java b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/SimpleShoppingCartService.java deleted file mode 100644 index 9bced883a5..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/SimpleShoppingCartService.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.baeldung.hexagonal.domain; - -import java.util.HashMap; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.baeldung.hexagonal.adapter.out.Product; -import com.baeldung.hexagonal.domain.ports.ProductRepository; - -@Service -public class SimpleShoppingCartService implements ShoppingCartService { - - private final ShoppingCart shoppingCart; - - @Autowired - ProductRepository productRepository; - - public SimpleShoppingCartService() { - this.shoppingCart = new ShoppingCart(new HashMap<>()); - } - - public Float getTotalCartValue() { - return shoppingCart.getTotalCartValue(); - } - - public void addItem(String name, Integer quantity) { - Product product = productRepository.findByName(name); - shoppingCart.addItem(product.toItem(), quantity); - } -} diff --git a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ports/ProductRepository.java b/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ports/ProductRepository.java deleted file mode 100644 index b4f53beb1e..0000000000 --- a/hexagonal/src/main/java/com/baeldung/hexagonal/domain/ports/ProductRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.baeldung.hexagonal.domain.ports; - -import com.baeldung.hexagonal.adapter.out.Product; - -public interface ProductRepository { - - Product findByName(String name); -} diff --git a/hexagonal/src/main/resources/application.properties b/hexagonal/src/main/resources/application.properties deleted file mode 100644 index 730dded1b7..0000000000 --- a/hexagonal/src/main/resources/application.properties +++ /dev/null @@ -1,5 +0,0 @@ -spring.datasource.url=jdbc:h2:mem:testdb -spring.datasource.driverClassName=org.h2.Driver -spring.datasource.username=sa -spring.datasource.password=password -spring.jpa.database-platform=org.hibernate.dialect.H2Dialect \ No newline at end of file diff --git a/hexagonal/src/test/java/com/baeldung/hexagonal/domain/ShoppingCartTest.java b/hexagonal/src/test/java/com/baeldung/hexagonal/domain/ShoppingCartTest.java deleted file mode 100644 index c39892a8fa..0000000000 --- a/hexagonal/src/test/java/com/baeldung/hexagonal/domain/ShoppingCartTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baeldung.hexagonal.domain; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.HashMap; -import java.util.Map; - -import org.junit.jupiter.api.Test; - -class ShoppingCartTest { - - @Test - void givenNonemptyShoppingCart_whenGetTotalCartValueCalled_thenShouldCalculateCorrectly() { - - // given - Map items = new HashMap<>(); - items.put(new CartItem("Cheese", 1.5f), 2); - items.put(new CartItem("Lemon", 2f), 5); - - ShoppingCart cart = new ShoppingCart(items); - - // when - Float totalCartValue = cart.getTotalCartValue(); - - // then - assertEquals(totalCartValue, 13f, 0); - } -}