From 18894f5c03049ea18703dda029140227f95e45aa Mon Sep 17 00:00:00 2001 From: akeshri Date: Sat, 4 Jul 2020 00:10:07 +0530 Subject: [PATCH] remove duplicate code --- .../article/hexagonal/architecture/App.java | 16 ---- .../hexagonal/architecture/ConsoleApp.java | 50 ----------- .../controller/ProductController.java | 54 ------------ .../architecture/dtos/ProductDto.java | 72 ---------------- .../hexagonal/architecture/model/Product.java | 85 ------------------- .../repository/ProductRepository.java | 14 --- .../architecture/service/ProductService.java | 21 ----- .../service/ProductServiceImpl.java | 44 ---------- .../service/ProductServiceTest.java | 43 ---------- 9 files changed, 399 deletions(-) delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/App.java delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/ConsoleApp.java delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/controller/ProductController.java delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/dtos/ProductDto.java delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/model/Product.java delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/repository/ProductRepository.java delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductService.java delete mode 100644 hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductServiceImpl.java delete mode 100644 hexagonal-architecture/src/test/java/com/article/hexagonal/architecture/service/ProductServiceTest.java diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/App.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/App.java deleted file mode 100644 index ebc661bfdb..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/App.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.article.hexagonal.architecture; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * @author AshwiniKeshri - * - */ - -@SpringBootApplication -public class App { - public static void main(String[] args) { - SpringApplication.run(App.class, args); - } -} diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/ConsoleApp.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/ConsoleApp.java deleted file mode 100644 index 0024438737..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/ConsoleApp.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.article.hexagonal.architecture; - -import java.io.File; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration; -import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration; - -import com.article.hexagonal.architecture.model.Product; -import com.article.hexagonal.architecture.service.ProductService; -import com.fasterxml.jackson.dataformat.csv.CsvMapper; -import com.fasterxml.jackson.dataformat.csv.CsvSchema; - -/** - * @author AshwiniKeshri - * - */ - -@SpringBootApplication(exclude = { EmbeddedServletContainerAutoConfiguration.class, WebMvcAutoConfiguration.class }) -public class ConsoleApp implements CommandLineRunner { - @Autowired - private ProductService productService; - - public static void main(String[] args) { - SpringApplication.run(ConsoleApp.class, args); - } - - @Override - public void run(String... args) throws Exception { - String filePath = ""; - if (args != null && args.length == 2 && "Product".equalsIgnoreCase(args[0]) && (filePath = args[1]).length() > 0) { - File sourceFile = new File(filePath); - if (sourceFile.exists()) { - CsvMapper mapper = new CsvMapper(); - List products = mapper.readerFor(Product.class) - .with(CsvSchema.emptySchema() - .withHeader()) - . readValues(sourceFile) - .readAll(); - productService.saveAll(products); - } - - } - - } -} diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/controller/ProductController.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/controller/ProductController.java deleted file mode 100644 index 66372980d0..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/controller/ProductController.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.article.hexagonal.architecture.controller; - -import java.util.List; -import java.util.stream.Collectors; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import com.article.hexagonal.architecture.dtos.ProductDto; -import com.article.hexagonal.architecture.model.Product; -import com.article.hexagonal.architecture.service.ProductService; - -/** - * @author AshwiniKeshri - * - */ - -@RestController -@RequestMapping("api/v1/product") -public class ProductController { - - @Autowired - private ProductService productService; - - @RequestMapping(value = "/all", method = RequestMethod.GET) - public List list() { - productService.findAll().stream().map(x->x.getDescription()) - return null; - //return productService.findAll().stream().map(p -> new ProductDto(p)).collect(Collectors.toList()); - } - - @RequestMapping(value = "/{productId}", method = RequestMethod.GET) - public ProductDto get(@PathVariable long productId) { - Product p = productService.findById(productId); - return p != null ? new ProductDto(p) : null; - } - - @RequestMapping(value = "/add", method = RequestMethod.POST) - public ProductDto create(@RequestBody ProductDto product) { - Product p = new Product(); - p.setDescription(product.getDescription()); - p.setName(product.getName()); - p.setPrice(product.getPrice()); - p.setQuantity(product.getQuantity()); - Long id = productService.create(p); - product.setId(id); - return product; - } - -} diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/dtos/ProductDto.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/dtos/ProductDto.java deleted file mode 100644 index 209ae69b0a..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/dtos/ProductDto.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.article.hexagonal.architecture.dtos; - -import com.article.hexagonal.architecture.model.Product; - -/** - * @author AshwiniKeshri - * - */ -public class ProductDto { - - private Long id; - - private String name; - - private Long quantity; - - private Double price; - - private String description; - - public ProductDto() { - } - - public ProductDto(Product product) { - this.description = product.getDescription(); - this.id = product.getId(); - this.name = product.getName(); - this.price = product.getPrice(); - this.quantity = product.getQuantity(); - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Long getQuantity() { - return quantity; - } - - public void setQuantity(Long quantity) { - this.quantity = quantity; - } - - public Double getPrice() { - return price; - } - - public void setPrice(Double price) { - this.price = price; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - -} diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/model/Product.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/model/Product.java deleted file mode 100644 index f0f95d4d11..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/model/Product.java +++ /dev/null @@ -1,85 +0,0 @@ -/** - * - */ -package com.article.hexagonal.architecture.model; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author AshwiniKeshri - * - */ - -@Entity -@Table(name = "PRODUCT") -public class Product implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 4000353732860709995L; - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; - - @Column(name = "NAME") - private String name; - - @Column(name = "QUANTITY") - private Long quantity; - - @Column(name = "PRICE") - private Double price; - - @Column(name = "DESCRIPTION") - private String description; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Long getQuantity() { - return quantity; - } - - public void setQuantity(Long quantity) { - this.quantity = quantity > 0 ? quantity : 0; - } - - public Double getPrice() { - return price; - } - - public void setPrice(Double price) { - this.price = price == null ? 0.0 : price; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - -} diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/repository/ProductRepository.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/repository/ProductRepository.java deleted file mode 100644 index fec151780c..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/repository/ProductRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.article.hexagonal.architecture.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.article.hexagonal.architecture.model.Product; - -/** - * @author AshwiniKeshri - * - */ - -public interface ProductRepository extends JpaRepository { - -} diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductService.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductService.java deleted file mode 100644 index 5ed1e7de96..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductService.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.article.hexagonal.architecture.service; - -import java.util.List; - -import com.article.hexagonal.architecture.model.Product; - -/** - * @author AshwiniKeshri - * - */ - -public interface ProductService { - - List findAll(); - - Product findById(long id); - - Long create(Product product); - - void saveAll(List products); -} diff --git a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductServiceImpl.java b/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductServiceImpl.java deleted file mode 100644 index ccd1599392..0000000000 --- a/hexagonal-architecture/src/main/java/com/article/hexagonal/architecture/service/ProductServiceImpl.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.article.hexagonal.architecture.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.article.hexagonal.architecture.model.Product; -import com.article.hexagonal.architecture.repository.ProductRepository; - -/** - * @author AshwiniKeshri - * - */ - -@Service -public class ProductServiceImpl implements ProductService { - - private Logger logger = LoggerFactory.getLogger(ProductServiceImpl.class); - - @Autowired - private ProductRepository productRepository; - - public List findAll() { - return productRepository.findAll(); - } - - public Product findById(long id) { - return productRepository.findOne(id); - } - - public Long create(Product product) { - product = productRepository.saveAndFlush(product); - return product.getId(); - } - - @Override - public void saveAll(List products) { - productRepository.save(products); - } - -} diff --git a/hexagonal-architecture/src/test/java/com/article/hexagonal/architecture/service/ProductServiceTest.java b/hexagonal-architecture/src/test/java/com/article/hexagonal/architecture/service/ProductServiceTest.java deleted file mode 100644 index 6635fef2da..0000000000 --- a/hexagonal-architecture/src/test/java/com/article/hexagonal/architecture/service/ProductServiceTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * - */ -package com.article.hexagonal.architecture.service; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.SpringApplicationConfiguration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.context.annotation.PropertySources; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import com.article.hexagonal.architecture.App; -import com.article.hexagonal.architecture.model.Product; -import com.article.hexagonal.architecture.service.ProductService; - -/** - * @author AshwiniKeshri - * - */ -@RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(App.class) -@ActiveProfiles(value = "test") -public class ProductServiceTest { - - @Autowired - private ProductService productService; - - @Test - public void testCreateProduct() { - Product product = new Product(); - product.setDescription("test product"); - product.setName("Product1"); - product.setPrice(10.0); - product.setQuantity(100l); - Long id = productService.create(product); - Assert.assertTrue(id > 0); - } - -}