Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 35 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
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>guru.springfamework</groupId>
Expand All @@ -22,6 +22,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<org.mapstruct.version>1.2.0.CR2</org.mapstruct.version>
</properties>

<dependencies>
Expand All @@ -46,7 +47,12 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand All @@ -70,7 +76,33 @@
<format>html</format>
<format>xml</format>
</formats>
<check />
<check/>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<compilerArg>
-Amapstruct.defaultComponentModel=spring
</compilerArg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
Expand Down Expand Up @@ -121,6 +153,4 @@
</snapshots>
</pluginRepository>
</pluginRepositories>


</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package guru.springfamework.api.v1.mapper;

import guru.springfamework.api.v1.model.CategoryDTO;
import guru.springfamework.domain.Category;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

/**
* Created by ccabo on 8/24/19
*/
@Mapper
public interface CategoryMapper {

CategoryMapper INSTANCE = Mappers.getMapper(CategoryMapper.class);

@Mapping(source = "id", target = "id")
CategoryDTO categoryToCategoryDTO(Category category);
}
13 changes: 12 additions & 1 deletion src/main/java/guru/springfamework/api/v1/model/CategoryDTO.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
package guru.springfamework.api.v1.model;

import lombok.Data;

/**
* Created by jt on 9/24/17.
* Created by ccabo on 8/24/19.
*/
@Data
public class CategoryDTO {
private Long id;
private String name;

public String getName() {
return name;
}

public Long getId() {
return id;
}
}
47 changes: 47 additions & 0 deletions src/main/java/guru/springfamework/bootstrap/Bootstrap.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package guru.springfamework.bootstrap;

import guru.springfamework.domain.Category;
import guru.springfamework.repositories.CategoryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
* Created by ccabo 8/24/19
*/
@Component
public class Bootstrap implements CommandLineRunner {

private CategoryRepository categoryRepository;

@Autowired
public Bootstrap(CategoryRepository categoryRepository) {
this.categoryRepository = categoryRepository;
}

@Override
public void run(String... args) throws Exception {
Category fruits = new Category();
fruits.setName("Fruits");

Category dried = new Category();
dried.setName("Dried");

Category fresh = new Category();
fresh.setName("Fresh");

Category exotic = new Category();
exotic.setName("Exotic");

Category nuts = new Category();
nuts.setName("Nuts");

categoryRepository.save(fruits);
categoryRepository.save(dried);
categoryRepository.save(fresh);
categoryRepository.save(exotic);
categoryRepository.save(nuts);

System.out.println("DATA LOADED: " + categoryRepository.count());
}
}
9 changes: 8 additions & 1 deletion src/main/java/guru/springfamework/domain/Category.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import javax.persistence.Id;

/**
* Created by jt on 9/24/17.
* Created by ccabo on 8/24/19.
*/
@Data
@Entity
Expand All @@ -19,4 +19,11 @@ public class Category {
private Long id;
private String name;

public void setId(Long id) {
this.id = id;
}

public void setName(String string) {
this.name = string;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package guru.springfamework.api.v1.mapper;

import guru.springfamework.api.v1.model.CategoryDTO;
import guru.springfamework.domain.Category;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class CategoryMapperTest {

private static final String NAME = "Joe";
private static final long ID = 1L;
CategoryMapper categoryMapper = CategoryMapper.INSTANCE;

@Test
public void categoryToCategoryDTO() throws Exception {

//given
Category category = new Category();
category.setName(NAME);
category.setId(ID);

//when
CategoryDTO categoryDTO = categoryMapper.categoryToCategoryDTO(category);

//then
assertEquals(Long.valueOf(ID), categoryDTO.getId());
assertEquals(NAME, categoryDTO.getName());

}
}