added spring boot starters module
This commit is contained in:
parent
1a812c42ba
commit
6fa4a43d39
1
pom.xml
1
pom.xml
@ -42,6 +42,7 @@
|
|||||||
<module>spring-apache-camel</module>
|
<module>spring-apache-camel</module>
|
||||||
<module>spring-batch</module>
|
<module>spring-batch</module>
|
||||||
<module>spring-boot</module>
|
<module>spring-boot</module>
|
||||||
|
<module>spring-boot-starters</module>
|
||||||
<module>spring-controller</module>
|
<module>spring-controller</module>
|
||||||
<module>spring-data-cassandra</module>
|
<module>spring-data-cassandra</module>
|
||||||
<module>spring-data-elasticsearch</module>
|
<module>spring-data-elasticsearch</module>
|
||||||
|
1
spring-boot-starters/.gitignore
vendored
Normal file
1
spring-boot-starters/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/target/
|
2
spring-boot-starters/README.MD
Normal file
2
spring-boot-starters/README.MD
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
###The Course
|
||||||
|
The "REST With Spring" Classes: http://bit.ly/restwithspring
|
91
spring-boot-starters/pom.xml
Normal file
91
spring-boot-starters/pom.xml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
<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">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>com.baeldung</groupId>
|
||||||
|
<artifactId>spring-boot-starters</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<name>Spring Boot Starters</name>
|
||||||
|
<description>This is simple boot application for Spring boot starters</description>
|
||||||
|
|
||||||
|
<!-- Inherit defaults from Spring Boot -->
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<version>1.3.3.RELEASE</version>
|
||||||
|
<relativePath/>
|
||||||
|
</parent>
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<java.version>1.8</java.version>
|
||||||
|
</properties>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter</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>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.jayway.jsonpath</groupId>
|
||||||
|
<artifactId>json-path</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-mail</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.subethamail</groupId>
|
||||||
|
<artifactId>subethasmtp</artifactId>
|
||||||
|
<version>3.1.7</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<finalName>spring-boot</finalName>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>1.8</source>
|
||||||
|
<target>1.8</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
|
||||||
|
</plugins>
|
||||||
|
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,16 @@
|
|||||||
|
package org.baeldung;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
|
||||||
|
import java.util.Queue;
|
||||||
|
|
||||||
|
@org.springframework.boot.autoconfigure.SpringBootApplication
|
||||||
|
public class Application {
|
||||||
|
private static ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
applicationContext = SpringApplication.run(Application.class, args);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package org.baeldung.controller;
|
||||||
|
|
||||||
|
import org.baeldung.domain.GenericEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class GenericEntityController {
|
||||||
|
private List<GenericEntity> entityList = new ArrayList<>();
|
||||||
|
|
||||||
|
{
|
||||||
|
entityList.add(new GenericEntity(1l, "entity_1"));
|
||||||
|
entityList.add(new GenericEntity(2l, "entity_2"));
|
||||||
|
entityList.add(new GenericEntity(3l, "entity_3"));
|
||||||
|
entityList.add(new GenericEntity(4l, "entity_4"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/entity/all")
|
||||||
|
public List<GenericEntity> findAll() {
|
||||||
|
return entityList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/entity", method = RequestMethod.POST)
|
||||||
|
public GenericEntity addEntity(GenericEntity entity) {
|
||||||
|
entityList.add(entity);
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/entity/findby/{id}")
|
||||||
|
public GenericEntity findById(@PathVariable Long id) {
|
||||||
|
return entityList.stream().filter(entity -> entity.getId().equals(id)).findFirst().get();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
package org.baeldung.domain;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.GenerationType;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public class GenericEntity {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
public GenericEntity() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public GenericEntity(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GenericEntity(Long id, String value) {
|
||||||
|
this.id = id;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package org.baeldung.repository;
|
||||||
|
|
||||||
|
import org.baeldung.domain.GenericEntity;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface GenericEntityRepository extends JpaRepository<GenericEntity, Long> {
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
server.port=8080
|
||||||
|
server.contextPath=/springbootapp
|
@ -0,0 +1,54 @@
|
|||||||
|
package org.baeldung;
|
||||||
|
|
||||||
|
import org.baeldung.domain.GenericEntity;
|
||||||
|
import org.baeldung.repository.GenericEntityRepository;
|
||||||
|
import org.junit.Before;
|
||||||
|
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.http.MediaType;
|
||||||
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
import org.springframework.test.context.web.WebAppConfiguration;
|
||||||
|
import org.springframework.test.web.servlet.MockMvc;
|
||||||
|
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||||
|
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||||
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
|
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
|
||||||
|
import static org.hamcrest.Matchers.hasSize;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||||
|
|
||||||
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
|
@SpringApplicationConfiguration(classes = Application.class)
|
||||||
|
@WebAppConfiguration
|
||||||
|
public class SpringBootApplicationTest {
|
||||||
|
@Autowired
|
||||||
|
private WebApplicationContext webApplicationContext;
|
||||||
|
private MockMvc mockMvc;
|
||||||
|
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setupMockMvc() {
|
||||||
|
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenRequestHasBeenMade_whenMeetsAllOfGivenConditions_thenCorrect() throws Exception {
|
||||||
|
MediaType contentType = new MediaType(MediaType.APPLICATION_JSON.getType(),
|
||||||
|
MediaType.APPLICATION_JSON.getSubtype(),
|
||||||
|
Charset.forName("utf8"));
|
||||||
|
|
||||||
|
mockMvc.perform(MockMvcRequestBuilders.get("/entity/all")).
|
||||||
|
andExpect(MockMvcResultMatchers.status().isOk()).
|
||||||
|
andExpect(MockMvcResultMatchers.content().contentType(contentType)).
|
||||||
|
andExpect(jsonPath("$", hasSize(4)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package org.baeldung;
|
||||||
|
|
||||||
|
import org.baeldung.domain.GenericEntity;
|
||||||
|
import org.baeldung.repository.GenericEntityRepository;
|
||||||
|
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.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
|
@SpringApplicationConfiguration(classes = Application.class)
|
||||||
|
public class SpringBootJPATest {
|
||||||
|
@Autowired
|
||||||
|
private GenericEntityRepository genericEntityRepository;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenGenericEntityRepository_whenSaveAndRetreiveEntity_thenOK() {
|
||||||
|
GenericEntity genericEntity = genericEntityRepository.save(new GenericEntity("test"));
|
||||||
|
GenericEntity foundedEntity = genericEntityRepository.findOne(genericEntity.getId());
|
||||||
|
assertNotNull(foundedEntity);
|
||||||
|
assertEquals(genericEntity.getValue(), foundedEntity.getValue());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
package org.baeldung;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
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.mail.SimpleMailMessage;
|
||||||
|
import org.springframework.mail.javamail.JavaMailSender;
|
||||||
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
import org.springframework.test.context.web.WebAppConfiguration;
|
||||||
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
|
import org.subethamail.wiser.Wiser;
|
||||||
|
import org.subethamail.wiser.WiserMessage;
|
||||||
|
|
||||||
|
import javax.mail.MessagingException;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.hamcrest.Matchers.hasSize;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
|
@SpringApplicationConfiguration(classes = Application.class)
|
||||||
|
public class SpringBootMailTest {
|
||||||
|
@Autowired
|
||||||
|
private JavaMailSender javaMailSender;
|
||||||
|
|
||||||
|
private Wiser wiser;
|
||||||
|
|
||||||
|
private String userTo = "user2@localhost";
|
||||||
|
private String userFrom = "user1@localhost";
|
||||||
|
private String subject = "Test subject";
|
||||||
|
private String textMail = "Text subject mail";
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() throws Exception {
|
||||||
|
final int TEST_PORT = 25;
|
||||||
|
wiser = new Wiser(TEST_PORT);
|
||||||
|
wiser.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() throws Exception {
|
||||||
|
wiser.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenMail_whenSendAndReceived_thenCorrect() throws Exception {
|
||||||
|
SimpleMailMessage message = composeEmailMessage();
|
||||||
|
javaMailSender.send(message);
|
||||||
|
List<WiserMessage> messages = wiser.getMessages();
|
||||||
|
|
||||||
|
assertThat(messages, hasSize(1));
|
||||||
|
WiserMessage wiserMessage = messages.get(0);
|
||||||
|
assertEquals(userFrom, wiserMessage.getEnvelopeSender());
|
||||||
|
assertEquals(userTo, wiserMessage.getEnvelopeReceiver());
|
||||||
|
assertEquals(subject, getSubject(wiserMessage));
|
||||||
|
assertEquals(textMail, getMessage(wiserMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getMessage(WiserMessage wiserMessage) throws MessagingException, IOException {
|
||||||
|
return wiserMessage.getMimeMessage().getContent().toString().trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getSubject(WiserMessage wiserMessage) throws MessagingException {
|
||||||
|
return wiserMessage.getMimeMessage().getSubject();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private SimpleMailMessage composeEmailMessage() {
|
||||||
|
SimpleMailMessage mailMessage = new SimpleMailMessage();
|
||||||
|
mailMessage.setTo(userTo);
|
||||||
|
mailMessage.setReplyTo(userFrom);
|
||||||
|
mailMessage.setFrom(userFrom);
|
||||||
|
mailMessage.setSubject(subject);
|
||||||
|
mailMessage.setText(textMail);
|
||||||
|
return mailMessage;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
spring.mail.host=localhost
|
||||||
|
spring.mail.port=25
|
||||||
|
spring.mail.properties.mail.smtp.auth=false
|
Loading…
x
Reference in New Issue
Block a user