diff --git a/core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java b/core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java
index 3d50e85245..b78b5937e1 100644
--- a/core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java
+++ b/core-java-modules/core-java-lang-oop/src/main/java/com/baeldung/constructors/BankAccount.java
@@ -54,3 +54,15 @@ class BankAccountCopyConstructor extends BankAccount {
this.balance = 0.0f;
}
}
+
+class BankAccountChainedConstructors extends BankAccount {
+ public BankAccountChainedConstructors(String name, LocalDateTime opened, double balance) {
+ this.name = name;
+ this.opened = opened;
+ this.balance = balance;
+ }
+
+ public BankAccountChainedConstructors(String name) {
+ this(name, LocalDateTime.now(), 0.0f);
+ }
+}
diff --git a/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java b/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
index 2cd8832fbf..66c8520e34 100644
--- a/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
+++ b/core-java-modules/core-java-lang-oop/src/test/java/com/baeldung/constructors/ConstructorUnitTest.java
@@ -1,15 +1,14 @@
package com.baeldung.constructors;
-import com.baeldung.constructors.*;
+import com.google.common.collect.Comparators;
+import org.junit.Test;
-import java.util.logging.Logger;
import java.time.LocalDateTime;
import java.time.Month;
+import java.util.ArrayList;
+import java.util.logging.Logger;
-import org.junit.Test;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatCode;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.assertj.core.api.Assertions.*;
public class ConstructorUnitTest {
final static Logger LOGGER = Logger.getLogger(ConstructorUnitTest.class.getName());
@@ -17,26 +16,28 @@ public class ConstructorUnitTest {
@Test
public void givenNoExplicitContructor_whenUsed_thenFails() {
BankAccount account = new BankAccount();
- assertThatThrownBy(() -> { account.toString(); }).isInstanceOf(Exception.class);
+ assertThatThrownBy(() -> {
+ account.toString();
+ }).isInstanceOf(Exception.class);
}
@Test
public void givenNoArgumentConstructor_whenUsed_thenSucceeds() {
BankAccountEmptyConstructor account = new BankAccountEmptyConstructor();
assertThatCode(() -> {
- account.toString();
- }).doesNotThrowAnyException();
+ account.toString();
+ }).doesNotThrowAnyException();
}
@Test
public void givenParameterisedConstructor_whenUsed_thenSucceeds() {
LocalDateTime opened = LocalDateTime.of(2018, Month.JUNE, 29, 06, 30, 00);
BankAccountParameterizedConstructor account =
- new BankAccountParameterizedConstructor("Tom", opened, 1000.0f);
-
+ new BankAccountParameterizedConstructor("Tom", opened, 1000.0f);
+
assertThatCode(() -> {
- account.toString();
- }).doesNotThrowAnyException();
+ account.toString();
+ }).doesNotThrowAnyException();
}
@Test
@@ -47,7 +48,16 @@ public class ConstructorUnitTest {
assertThat(account.getName()).isEqualTo(newAccount.getName());
assertThat(account.getOpened()).isNotEqualTo(newAccount.getOpened());
-
+
assertThat(newAccount.getBalance()).isEqualTo(0.0f);
}
+
+ @Test
+ public void givenChainedConstructor_whenUsed_thenMaintainsLogic() {
+ BankAccountChainedConstructors account = new BankAccountChainedConstructors("Tim");
+ BankAccountChainedConstructors newAccount = new BankAccountChainedConstructors("Tim", LocalDateTime.now(), 0.0f);
+
+ assertThat(account.getName()).isEqualTo(newAccount.getName());
+ assertThat(account.getBalance()).isEqualTo(newAccount.getBalance());
+ }
}
diff --git a/spring-boot-logging-log4j2/pom.xml b/spring-boot-logging-log4j2/pom.xml
index 6cc60da52c..64696969ca 100644
--- a/spring-boot-logging-log4j2/pom.xml
+++ b/spring-boot-logging-log4j2/pom.xml
@@ -34,6 +34,12 @@
org.springframework.boot
spring-boot-starter-log4j2
+
+ org.projectlombok
+ lombok
+ 1.18.4
+ provided
+
diff --git a/spring-boot-logging-log4j2/src/main/java/com/baeldung/springbootlogging/LombokLoggingController.java b/spring-boot-logging-log4j2/src/main/java/com/baeldung/springbootlogging/LombokLoggingController.java
new file mode 100644
index 0000000000..5f75dbd5a1
--- /dev/null
+++ b/spring-boot-logging-log4j2/src/main/java/com/baeldung/springbootlogging/LombokLoggingController.java
@@ -0,0 +1,28 @@
+package com.baeldung.springbootlogging;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import lombok.extern.slf4j.Slf4j;
+
+//import lombok.extern.log4j.Log4j2;
+//import lombok.extern.apachecommons.CommonsLog;
+
+@RestController("LombokLoggingController")
+@Slf4j
+// @CommonsLog (Comment any other Lombok logging annotation and uncomment this
+// to work with Apache Commons Logging)
+// @Log4j2 (Comment any other Lombok logging annotation and uncomment this to
+// work directly with Log4j2)
+public class LombokLoggingController {
+
+ @GetMapping("/lombok")
+ public String index() {
+ log.trace("A TRACE Message");
+ log.debug("A DEBUG Message");
+ log.info("An INFO Message");
+ log.warn("A WARN Message");
+ log.error("An ERROR Message");
+ return "Howdy! Check out the Logs to see the output...";
+ }
+}