Removed source code for evaluation article
This commit is contained in:
		
							parent
							
								
									e5461ab16e
								
							
						
					
					
						commit
						9c9721cdd0
					
				
							
								
								
									
										33
									
								
								patterns/hexagonal-architecture/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								patterns/hexagonal-architecture/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,33 +0,0 @@ | ||||
| target/ | ||||
| .mvn/ | ||||
| mvnw | ||||
| mvnw.cmd | ||||
| !.mvn/wrapper/maven-wrapper.jar | ||||
| !**/src/main/** | ||||
| !**/src/test/** | ||||
| 
 | ||||
| ### STS ### | ||||
| .apt_generated | ||||
| .classpath | ||||
| .factorypath | ||||
| .project | ||||
| .settings | ||||
| .springBeans | ||||
| .sts4-cache | ||||
| 
 | ||||
| ### IntelliJ IDEA ### | ||||
| .idea | ||||
| *.iws | ||||
| *.iml | ||||
| *.ipr | ||||
| 
 | ||||
| ### NetBeans ### | ||||
| /nbproject/private/ | ||||
| /nbbuild/ | ||||
| /dist/ | ||||
| /nbdist/ | ||||
| /.nb-gradle/ | ||||
| build/ | ||||
| 
 | ||||
| ### VS Code ### | ||||
| .vscode/ | ||||
| @ -1,24 +0,0 @@ | ||||
| # HEXAGONAL ARCHITECTURE - EXAMPLE IN JAVA | ||||
| 
 | ||||
| A Spring Boot base web application for address book has been built as part of this project based on the hexagonal architecture guidelines, which allows the user to add a contact ad list all the contacts that are available.  | ||||
| 
 | ||||
| ### Running the application | ||||
| 
 | ||||
| The application can be run using maven spring-boot run command  | ||||
| 
 | ||||
| ``` | ||||
| mvn spring-boot:run | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| New contact can be added through a POST request on http://loalhost:8080/contacts  with the body as  | ||||
| 
 | ||||
| ``` | ||||
| { | ||||
| 	"name": "ABC", | ||||
| 	"address": "Address", | ||||
| 	"contactNumber": 1234567890 | ||||
| } | ||||
| 
 | ||||
| ``` | ||||
| Existing contacts can be listed using a GET request on the same url http://loalhost:8080/contacts | ||||
| @ -1,53 +0,0 @@ | ||||
| <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||||
| 	<modelVersion>4.0.0</modelVersion> | ||||
| 	<parent> | ||||
| 		<groupId>org.springframework.boot</groupId> | ||||
| 		<artifactId>spring-boot-starter-parent</artifactId> | ||||
| 		<version>2.2.0.RELEASE</version> | ||||
| 		<relativePath/> <!-- lookup parent from repository --> | ||||
| 	</parent> | ||||
| 	<groupId>com.baeldung.hexagonal.arch</groupId> | ||||
| 	<artifactId>hexagonal-architecture</artifactId> | ||||
| 	<version>0.0.1-SNAPSHOT</version> | ||||
| 	<name>hexagonal-architecture</name> | ||||
| 	<description>Demo project for Spring Boot</description> | ||||
| 
 | ||||
| 	<properties> | ||||
| 		<java.version>1.8</java.version> | ||||
| 	</properties> | ||||
| 
 | ||||
| 	<dependencies> | ||||
| 		<dependency> | ||||
| 			<groupId>org.springframework.boot</groupId> | ||||
| 			<artifactId>spring-boot-starter-data-jpa</artifactId> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>org.springframework.boot</groupId> | ||||
| 			<artifactId>spring-boot-starter-web</artifactId> | ||||
| 		</dependency> | ||||
| 
 | ||||
| 		<dependency> | ||||
| 			<groupId>org.springframework.boot</groupId> | ||||
| 			<artifactId>spring-boot-starter-test</artifactId> | ||||
| 			<scope>test</scope> | ||||
| 			<exclusions> | ||||
| 				<exclusion> | ||||
| 					<groupId>org.junit.vintage</groupId> | ||||
| 					<artifactId>junit-vintage-engine</artifactId> | ||||
| 				</exclusion> | ||||
| 			</exclusions> | ||||
| 		</dependency> | ||||
| 	</dependencies> | ||||
| 
 | ||||
| 	<build> | ||||
| 		<plugins> | ||||
| 			<plugin> | ||||
| 				<groupId>org.springframework.boot</groupId> | ||||
| 				<artifactId>spring-boot-maven-plugin</artifactId> | ||||
| 			</plugin> | ||||
| 		</plugins> | ||||
| 	</build> | ||||
| 
 | ||||
| </project> | ||||
| @ -1,16 +0,0 @@ | ||||
| package com.baeldung.hexagonal.arch; | ||||
| 
 | ||||
| import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.EnableAutoConfiguration; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; | ||||
| 
 | ||||
| @SpringBootApplication | ||||
| @EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class }) | ||||
| public class AddressBookApplication { | ||||
| 
 | ||||
|     public static void main(String[] args) { | ||||
|         SpringApplication.run(AddressBookApplication.class, args); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,32 +0,0 @@ | ||||
| package com.baeldung.hexagonal.arch.adapter.controller; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.GetMapping; | ||||
| import org.springframework.web.bind.annotation.PostMapping; | ||||
| import org.springframework.web.bind.annotation.RequestBody; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
| 
 | ||||
| import com.baeldung.hexagonal.arch.core.domain.Contact; | ||||
| import com.baeldung.hexagonal.arch.port.service.AddressBookService; | ||||
| 
 | ||||
| @RestController | ||||
| @RequestMapping("/contacts") | ||||
| public class AddressBookController { | ||||
| 
 | ||||
|     @Autowired | ||||
|     private AddressBookService addressBookService; | ||||
| 
 | ||||
|     @PostMapping | ||||
|     public void addContact(@RequestBody Contact contact) { | ||||
|         addressBookService.createContact(contact); | ||||
|     } | ||||
| 
 | ||||
|     @GetMapping | ||||
|     public List<Contact> getAllContacts() { | ||||
|         return addressBookService.getAllContacts(); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,30 +0,0 @@ | ||||
| package com.baeldung.hexagonal.arch.adapter.repository; | ||||
| 
 | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.stream.Collectors; | ||||
| 
 | ||||
| import org.springframework.stereotype.Repository; | ||||
| 
 | ||||
| import com.baeldung.hexagonal.arch.core.domain.Contact; | ||||
| import com.baeldung.hexagonal.arch.port.repo.ContactRepository; | ||||
| 
 | ||||
| @Repository | ||||
| public class ContactRepositoryImpl implements ContactRepository { | ||||
| 
 | ||||
|     private Map<String, Contact> contactsRepo = new HashMap<String, Contact>(); | ||||
| 
 | ||||
|     @Override | ||||
|     public void createContact(Contact contact) { | ||||
|         contactsRepo.put(contact.getName(), contact); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public List<Contact> getAllContacts() { | ||||
|         return contactsRepo.values() | ||||
|             .stream() | ||||
|             .collect(Collectors.toList()); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,33 +0,0 @@ | ||||
| package com.baeldung.hexagonal.arch.core.domain; | ||||
| 
 | ||||
| public class Contact { | ||||
| 
 | ||||
|     private String name; | ||||
|     private String address; | ||||
|     private int contactNumber; | ||||
| 
 | ||||
|     public String getName() { | ||||
|         return name; | ||||
|     } | ||||
| 
 | ||||
|     public void setName(String name) { | ||||
|         this.name = name; | ||||
|     } | ||||
| 
 | ||||
|     public String getAddress() { | ||||
|         return address; | ||||
|     } | ||||
| 
 | ||||
|     public void setAddress(String address) { | ||||
|         this.address = address; | ||||
|     } | ||||
| 
 | ||||
|     public int getContactNumber() { | ||||
|         return contactNumber; | ||||
|     } | ||||
| 
 | ||||
|     public void setContactNumber(int contactNumber) { | ||||
|         this.contactNumber = contactNumber; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,28 +0,0 @@ | ||||
| package com.baeldung.hexagonal.arch.core.service; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| 
 | ||||
| import com.baeldung.hexagonal.arch.core.domain.Contact; | ||||
| import com.baeldung.hexagonal.arch.port.repo.ContactRepository; | ||||
| import com.baeldung.hexagonal.arch.port.service.AddressBookService; | ||||
| 
 | ||||
| @Service | ||||
| public class AddressBookServiceImpl implements AddressBookService { | ||||
| 
 | ||||
|     @Autowired | ||||
|     ContactRepository contactRepository; | ||||
| 
 | ||||
|     @Override | ||||
|     public void createContact(Contact contact) { | ||||
|         contactRepository.createContact(contact); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public List<Contact> getAllContacts() { | ||||
|         return contactRepository.getAllContacts(); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| @ -1,13 +0,0 @@ | ||||
| package com.baeldung.hexagonal.arch.port.repo; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import com.baeldung.hexagonal.arch.core.domain.Contact; | ||||
| 
 | ||||
| public interface ContactRepository { | ||||
| 
 | ||||
|     void createContact(Contact contact); | ||||
| 
 | ||||
|     List<Contact> getAllContacts(); | ||||
| 
 | ||||
| } | ||||
| @ -1,13 +0,0 @@ | ||||
| package com.baeldung.hexagonal.arch.port.service; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import com.baeldung.hexagonal.arch.core.domain.Contact; | ||||
| 
 | ||||
| public interface AddressBookService { | ||||
| 
 | ||||
|     public void createContact(Contact contact); | ||||
| 
 | ||||
|     public List<Contact> getAllContacts(); | ||||
| 
 | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user