diff --git a/pom.xml b/pom.xml
index 75ec6e8..a4cf33e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,6 +7,10 @@
guru.springframework
hello-world
1.0-SNAPSHOT
+ pom
+
+ practice-module
+
UTF-8
@@ -14,5 +18,141 @@
11
${java.version}
${java.version}
+ 1.5.5.Final
+ -Xmx512m
+ -Xmx512m
+
-
\ No newline at end of file
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+ provided
+
+
+ org.mapstruct
+ mapstruct
+ ${mapstruct.version}
+
+
+ junit
+ junit
+ 4.13.2
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+ 5.12.0
+ test
+
+
+ org.spockframework
+ spock-core
+ 2.4-M5-groovy-4.0
+ test
+
+
+ org.testng
+ testng
+ 7.10.2
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+
+
+ org.mapstruct
+ mapstruct-processor
+ ${mapstruct.version}
+
+
+ org.projectlombok
+ lombok
+ 1.18.36
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ 3.5.2
+
+ ${failsafeArgLine} -Xmx512m
+
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M9
+
+ ${surefireArgLine}
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.10
+
+
+ pre-unit-test
+
+ prepare-agent
+
+
+ ${project.build.directory}/coverage-reports/jacoco-ut.exec
+ surefireArgLine
+
+
+
+ post-unit-test
+ test
+
+ report
+
+
+ ${project.build.directory}/coverage-reports/jacoco-ut.exec
+ ${project.reporting.outputDirectory}/jacoco-ut
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 2.22.0
+
+
+ com.github.spotbugs
+ spotbugs-maven-plugin
+ 4.9.3.0
+
+
+
+
diff --git a/practice-module/pom.xml b/practice-module/pom.xml
new file mode 100644
index 0000000..a4d2f02
--- /dev/null
+++ b/practice-module/pom.xml
@@ -0,0 +1,64 @@
+
+ 4.0.0
+
+ guru.springframework
+ hello-world
+ 1.0-SNAPSHOT
+
+
+ practice-module
+ jar
+
+ practice-module
+ http://maven.apache.org
+
+
+
+ 2.3.0
+ UTF-8
+
+
+
+
+
+ javax.xml.bind
+ jaxb-api
+ ${jaxb.version}
+
+
+ com.sun.xml.bind
+ jaxb-core
+ ${jaxb.version}
+
+
+ com.sun.xml.bind
+ jaxb-impl
+ ${jaxb.version}
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
+
+
+
+ org.jvnet.jaxb2.maven2
+ maven-jaxb2-plugin
+ 0.14.0
+
+
+
+ generate
+
+
+
+
+
+
+
+
diff --git a/practice-module/src/main/java/guru/springframework/App.java b/practice-module/src/main/java/guru/springframework/App.java
new file mode 100644
index 0000000..4ea458c
--- /dev/null
+++ b/practice-module/src/main/java/guru/springframework/App.java
@@ -0,0 +1,13 @@
+package guru.springframework;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git a/practice-module/src/main/java/resources/jaxb.xsd b/practice-module/src/main/java/resources/jaxb.xsd
new file mode 100644
index 0000000..6a58089
--- /dev/null
+++ b/practice-module/src/main/java/resources/jaxb.xsd
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/practice-module/src/test/java/guru/springframework/AppTest.java b/practice-module/src/test/java/guru/springframework/AppTest.java
new file mode 100644
index 0000000..10771f7
--- /dev/null
+++ b/practice-module/src/test/java/guru/springframework/AppTest.java
@@ -0,0 +1,38 @@
+package guru.springframework;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/src/main/java/HelloWorld.java b/src/main/java/HelloWorld.java
deleted file mode 100644
index 83f5e9c..0000000
--- a/src/main/java/HelloWorld.java
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Created by jt on 2018-11-26.
- */
-public class HelloWorld {
-
- public static void main(String[] args) {
- System.out.println("Hello World!!!! ");
- }
-}
diff --git a/src/main/java/domain/User.java b/src/main/java/domain/User.java
new file mode 100644
index 0000000..bdc4b61
--- /dev/null
+++ b/src/main/java/domain/User.java
@@ -0,0 +1,48 @@
+package domain;
+
+/**
+ * Created by jt on 2018-11-26.
+ */
+//@Data
+//@AllArgsConstructor
+//@NoArgsConstructor
+//@Builder
+public class User {
+ private String firstName;
+ private String lastName;
+ private String email;
+
+ public User(){
+
+ }
+
+ public User(String firstName, String lastName, String email) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.email = email;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+}
diff --git a/src/main/java/mappers/UserMapper.java b/src/main/java/mappers/UserMapper.java
new file mode 100644
index 0000000..5073055
--- /dev/null
+++ b/src/main/java/mappers/UserMapper.java
@@ -0,0 +1,14 @@
+package mappers;
+
+import domain.User;
+import model.UserCommand;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+@Mapper
+public interface UserMapper {
+ UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
+
+ UserCommand userToUserCommand(User user);
+ User userCommandToUser(UserCommand userCommand);
+}
diff --git a/src/main/java/model/UserCommand.java b/src/main/java/model/UserCommand.java
new file mode 100644
index 0000000..8de02db
--- /dev/null
+++ b/src/main/java/model/UserCommand.java
@@ -0,0 +1,41 @@
+package model;
+
+public class UserCommand {
+ private String firstName;
+ private String lastName;
+ private String email;
+
+ public UserCommand(){
+
+ }
+
+ public UserCommand(String firstName, String lastName, String email) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.email = email;
+ }
+
+ public String getFirstName() {
+ return "hi";
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return "hi";
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+}
diff --git a/src/test/java/model/JavaIntegrationTest.java b/src/test/java/model/JavaIntegrationTest.java
new file mode 100644
index 0000000..2115529
--- /dev/null
+++ b/src/test/java/model/JavaIntegrationTest.java
@@ -0,0 +1,10 @@
+package model;
+
+import org.junit.Test;
+
+public class JavaIntegrationTest {
+ @Test
+ public void myIntegrationTest(){
+ System.out.println("hi");
+ }
+}
diff --git a/src/test/java/model/UserCommandTest.java b/src/test/java/model/UserCommandTest.java
new file mode 100644
index 0000000..29bb566
--- /dev/null
+++ b/src/test/java/model/UserCommandTest.java
@@ -0,0 +1,13 @@
+package model;
+
+
+import org.junit.Test;
+
+public class UserCommandTest {
+
+ @Test
+ public void testGetFirstName() {
+ UserCommand userCommand = new UserCommand();
+ assert ("hi".equals(userCommand.getFirstName()));
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/model/UserCommandTestLastName.java b/src/test/java/model/UserCommandTestLastName.java
new file mode 100644
index 0000000..84800c9
--- /dev/null
+++ b/src/test/java/model/UserCommandTestLastName.java
@@ -0,0 +1,14 @@
+package model;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class UserCommandTestLastName {
+
+ @Test
+ public void testGetLastName() {
+ UserCommand userCommand = new UserCommand();
+ assertEquals ("hi",(userCommand.getLastName()));
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/model/UserCommandTestSpock.groovy b/src/test/java/model/UserCommandTestSpock.groovy
new file mode 100644
index 0000000..0ab7743
--- /dev/null
+++ b/src/test/java/model/UserCommandTestSpock.groovy
@@ -0,0 +1,10 @@
+package model;
+
+
+import spock.lang.Specification
+
+class UserCommandTestSpock extends Specification {
+
+ def "GetEmail"() {
+ }
+}
diff --git a/src/test/java/model/UserCommandTestTestNg.java b/src/test/java/model/UserCommandTestTestNg.java
new file mode 100644
index 0000000..d2f6abf
--- /dev/null
+++ b/src/test/java/model/UserCommandTestTestNg.java
@@ -0,0 +1,12 @@
+package model;
+
+import org.testng.annotations.Test;
+
+import static org.testng.Assert.*;
+
+public class UserCommandTestTestNg {
+
+ @Test
+ public void testGetEmail() {
+ }
+}
\ No newline at end of file