BAEL-20864 Move Spring Boot Custom Starter Module
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# Greeter App
|
||||
|
||||
This app takes in the user's name and messages for different times of day as configuration parameters and outptus the greeting messge. For example it will take the name **John** and the message for morning time as **Good Morning** and output the message **Hello John, Good Morning**.
|
||||
|
||||
## Usage
|
||||
|
||||
Create and populate the class `GreetingConfig`, instantiate a `Greeter` using the `GreetingConfig` and use it get greeting messages:
|
||||
|
||||
```java
|
||||
GreetingConfig greetingConfig = new GreetingConfig();
|
||||
greetingConfig.put(USER_NAME, "World");
|
||||
greetingConfig.put(MORNING_MESSAGE, "Good Morning");
|
||||
greetingConfig.put(AFTERNOON_MESSAGE, "Good Afternoon");
|
||||
greetingConfig.put(EVENING_MESSAGE, "Good Evening");
|
||||
greetingConfig.put(NIGHT_MESSAGE, "Good Night");
|
||||
|
||||
Greeter greeter = new Greeter(greetingConfig);
|
||||
greeter.greet();
|
||||
```
|
||||
@@ -0,0 +1,16 @@
|
||||
<?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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>greeter-library</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>greeter-library</name>
|
||||
|
||||
<parent>
|
||||
<groupId>com.baeldung.spring-boot-modules</groupId>
|
||||
<artifactId>spring-boot-custom-starter</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
</project>
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package com.baeldung.greeter.library;
|
||||
|
||||
import static com.baeldung.greeter.library.GreeterConfigParams.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public class Greeter {
|
||||
|
||||
private GreetingConfig greetingConfig;
|
||||
|
||||
public Greeter(GreetingConfig greetingConfig) {
|
||||
this.greetingConfig = greetingConfig;
|
||||
}
|
||||
|
||||
public String greet(LocalDateTime localDateTime) {
|
||||
|
||||
String name = greetingConfig.getProperty(USER_NAME);
|
||||
int hourOfDay = localDateTime.getHour();
|
||||
|
||||
if (hourOfDay >= 5 && hourOfDay < 12) {
|
||||
return String.format("Hello %s, %s", name, greetingConfig.get(MORNING_MESSAGE));
|
||||
} else if (hourOfDay >= 12 && hourOfDay < 17) {
|
||||
return String.format("Hello %s, %s", name, greetingConfig.get(AFTERNOON_MESSAGE));
|
||||
} else if (hourOfDay >= 17 && hourOfDay < 20) {
|
||||
return String.format("Hello %s, %s", name, greetingConfig.get(EVENING_MESSAGE));
|
||||
} else {
|
||||
return String.format("Hello %s, %s", name, greetingConfig.get(NIGHT_MESSAGE));
|
||||
}
|
||||
}
|
||||
|
||||
public String greet() {
|
||||
return greet(LocalDateTime.now());
|
||||
}
|
||||
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.baeldung.greeter.library;
|
||||
|
||||
public class GreeterConfigParams {
|
||||
|
||||
public static final String USER_NAME = "user.name";
|
||||
public static final String MORNING_MESSAGE = "morning.message";
|
||||
public static final String AFTERNOON_MESSAGE = "afternoon.message";
|
||||
public static final String EVENING_MESSAGE = "evening.message";
|
||||
public static final String NIGHT_MESSAGE = "night.message";
|
||||
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.greeter.library;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
public class GreetingConfig extends Properties{
|
||||
|
||||
private static final long serialVersionUID = 5662570853707247891L;
|
||||
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
|
||||
</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT" />
|
||||
</root>
|
||||
</configuration>
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.baeldung.greeter;
|
||||
|
||||
import static com.baeldung.greeter.library.GreeterConfigParams.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.baeldung.greeter.library.Greeter;
|
||||
import com.baeldung.greeter.library.GreetingConfig;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
public class GreeterIntegrationTest {
|
||||
|
||||
private static GreetingConfig greetingConfig;
|
||||
|
||||
@BeforeClass
|
||||
public static void initalizeGreetingConfig() {
|
||||
greetingConfig = new GreetingConfig();
|
||||
greetingConfig.put(USER_NAME, "World");
|
||||
greetingConfig.put(MORNING_MESSAGE, "Good Morning");
|
||||
greetingConfig.put(AFTERNOON_MESSAGE, "Good Afternoon");
|
||||
greetingConfig.put(EVENING_MESSAGE, "Good Evening");
|
||||
greetingConfig.put(NIGHT_MESSAGE, "Good Night");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenMorningTime_ifMorningMessage_thenSuccess() {
|
||||
String expected = "Hello World, Good Morning";
|
||||
Greeter greeter = new Greeter(greetingConfig);
|
||||
String actual = greeter.greet(LocalDateTime.of(2017, 3, 1, 6, 0));
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenAfternoonTime_ifAfternoonMessage_thenSuccess() {
|
||||
String expected = "Hello World, Good Afternoon";
|
||||
Greeter greeter = new Greeter(greetingConfig);
|
||||
String actual = greeter.greet(LocalDateTime.of(2017, 3, 1, 13, 0));
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenEveningTime_ifEveningMessage_thenSuccess() {
|
||||
String expected = "Hello World, Good Evening";
|
||||
Greeter greeter = new Greeter(greetingConfig);
|
||||
String actual = greeter.greet(LocalDateTime.of(2017, 3, 1, 19, 0));
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenNightTime_ifNightMessage_thenSuccess() {
|
||||
String expected = "Hello World, Good Night";
|
||||
Greeter greeter = new Greeter(greetingConfig);
|
||||
String actual = greeter.greet(LocalDateTime.of(2017, 3, 1, 21, 0));
|
||||
assertEquals(expected, actual);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user