From 45e5aa06b75b2ee468238b3cc8bd4cb5f1e03e29 Mon Sep 17 00:00:00 2001 From: Bill Bensing Date: Tue, 21 Jan 2020 06:42:33 -0500 Subject: [PATCH 1/2] non-backward compatable changes, removed RequestHandler, changed namespaces, added interfaces for request, responsee, commandusecase, queryuseecase. updated to version 1.0.0 to refelect breaking api changes --- pom.xml | 10 +++++----- .../java/com/wb3tech/kernel/RequestHandler.java | 5 ----- src/main/java/com/wb3tech/kernel/UseCase.java | 5 ----- .../java/com/wb3tech/kernel/boundary/Request.java | 4 ++++ .../java/com/wb3tech/kernel/boundary/Response.java | 4 ++++ .../wb3tech/kernel/conroller/CommandUseCase.java | 5 +++++ .../com/wb3tech/kernel/conroller/QueryUseCase.java | 8 ++++++++ .../java/com/wb3tech/kernel/conroller/UseCase.java | 4 ++++ .../com/wb3tech/kernel/{ => entity}/Entity.java | 2 +- .../wb3tech/kernel/{ => entity}/Identifiable.java | 2 +- .../com/wb3tech/kernel/{ => entity}/Identity.java | 4 ++-- .../wb3tech/kernel/valueobject/EmailAddress.java | 2 -- .../java/com/wb3tech/kernel/valueobject/Person.java | 2 -- .../com/wb3tech/kernel/valueobject/Username.java | 2 -- .../kernel/{ => valueobject}/ValueObject.java | 2 +- src/test/java/com/wb3tech/kernel/EntityTests.java | 13 +++++++++++-- src/test/java/com/wb3tech/kernel/IdentityTests.java | 1 + 17 files changed, 47 insertions(+), 28 deletions(-) delete mode 100644 src/main/java/com/wb3tech/kernel/RequestHandler.java delete mode 100644 src/main/java/com/wb3tech/kernel/UseCase.java create mode 100644 src/main/java/com/wb3tech/kernel/boundary/Request.java create mode 100644 src/main/java/com/wb3tech/kernel/boundary/Response.java create mode 100644 src/main/java/com/wb3tech/kernel/conroller/CommandUseCase.java create mode 100644 src/main/java/com/wb3tech/kernel/conroller/QueryUseCase.java create mode 100644 src/main/java/com/wb3tech/kernel/conroller/UseCase.java rename src/main/java/com/wb3tech/kernel/{ => entity}/Entity.java (93%) rename src/main/java/com/wb3tech/kernel/{ => entity}/Identifiable.java (62%) rename src/main/java/com/wb3tech/kernel/{ => entity}/Identity.java (96%) rename src/main/java/com/wb3tech/kernel/{ => valueobject}/ValueObject.java (79%) diff --git a/pom.xml b/pom.xml index 5db8344..85b3dbf 100644 --- a/pom.xml +++ b/pom.xml @@ -6,15 +6,12 @@ com.wb3tech kernel - 0.3.0 + 1.0.0 - 13 5.6.0-M1 UTF-8 - ${java.version} - ${java.version} - ${java.version} + 11 3.8.1 3.0.0-M4 @@ -34,6 +31,9 @@ org.apache.maven.plugins maven-compiler-plugin ${maven.compiler.plugin.version} + + ${maven.compiler.release} + diff --git a/src/main/java/com/wb3tech/kernel/RequestHandler.java b/src/main/java/com/wb3tech/kernel/RequestHandler.java deleted file mode 100644 index 1ebdfde..0000000 --- a/src/main/java/com/wb3tech/kernel/RequestHandler.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.wb3tech.kernel; - -public interface RequestHandler { - void Handle(Request request); -} diff --git a/src/main/java/com/wb3tech/kernel/UseCase.java b/src/main/java/com/wb3tech/kernel/UseCase.java deleted file mode 100644 index f57360a..0000000 --- a/src/main/java/com/wb3tech/kernel/UseCase.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.wb3tech.kernel; - -public interface UseCase { - void execute(); -} diff --git a/src/main/java/com/wb3tech/kernel/boundary/Request.java b/src/main/java/com/wb3tech/kernel/boundary/Request.java new file mode 100644 index 0000000..90f86c7 --- /dev/null +++ b/src/main/java/com/wb3tech/kernel/boundary/Request.java @@ -0,0 +1,4 @@ +package com.wb3tech.kernel.boundary; + +public interface Request { +} diff --git a/src/main/java/com/wb3tech/kernel/boundary/Response.java b/src/main/java/com/wb3tech/kernel/boundary/Response.java new file mode 100644 index 0000000..a43a9ea --- /dev/null +++ b/src/main/java/com/wb3tech/kernel/boundary/Response.java @@ -0,0 +1,4 @@ +package com.wb3tech.kernel.boundary; + +public interface Response { +} diff --git a/src/main/java/com/wb3tech/kernel/conroller/CommandUseCase.java b/src/main/java/com/wb3tech/kernel/conroller/CommandUseCase.java new file mode 100644 index 0000000..bc217ea --- /dev/null +++ b/src/main/java/com/wb3tech/kernel/conroller/CommandUseCase.java @@ -0,0 +1,5 @@ +package com.wb3tech.kernel.conroller; + +public interface CommandUseCase extends UseCase { + void execute(T command); +} diff --git a/src/main/java/com/wb3tech/kernel/conroller/QueryUseCase.java b/src/main/java/com/wb3tech/kernel/conroller/QueryUseCase.java new file mode 100644 index 0000000..434df40 --- /dev/null +++ b/src/main/java/com/wb3tech/kernel/conroller/QueryUseCase.java @@ -0,0 +1,8 @@ +package com.wb3tech.kernel.conroller; + +import com.wb3tech.kernel.boundary.Request; +import com.wb3tech.kernel.boundary.Response; + +public interface QueryUseCase { + Resp execute(Req request); +} diff --git a/src/main/java/com/wb3tech/kernel/conroller/UseCase.java b/src/main/java/com/wb3tech/kernel/conroller/UseCase.java new file mode 100644 index 0000000..90845f1 --- /dev/null +++ b/src/main/java/com/wb3tech/kernel/conroller/UseCase.java @@ -0,0 +1,4 @@ +package com.wb3tech.kernel.conroller; + +public interface UseCase { +} diff --git a/src/main/java/com/wb3tech/kernel/Entity.java b/src/main/java/com/wb3tech/kernel/entity/Entity.java similarity index 93% rename from src/main/java/com/wb3tech/kernel/Entity.java rename to src/main/java/com/wb3tech/kernel/entity/Entity.java index 44b2b08..f4f7b3a 100644 --- a/src/main/java/com/wb3tech/kernel/Entity.java +++ b/src/main/java/com/wb3tech/kernel/entity/Entity.java @@ -1,4 +1,4 @@ -package com.wb3tech.kernel; +package com.wb3tech.kernel.entity; public abstract class Entity implements Identifiable { diff --git a/src/main/java/com/wb3tech/kernel/Identifiable.java b/src/main/java/com/wb3tech/kernel/entity/Identifiable.java similarity index 62% rename from src/main/java/com/wb3tech/kernel/Identifiable.java rename to src/main/java/com/wb3tech/kernel/entity/Identifiable.java index dc136bc..d0484ce 100644 --- a/src/main/java/com/wb3tech/kernel/Identifiable.java +++ b/src/main/java/com/wb3tech/kernel/entity/Identifiable.java @@ -1,4 +1,4 @@ -package com.wb3tech.kernel; +package com.wb3tech.kernel.entity; public interface Identifiable { diff --git a/src/main/java/com/wb3tech/kernel/Identity.java b/src/main/java/com/wb3tech/kernel/entity/Identity.java similarity index 96% rename from src/main/java/com/wb3tech/kernel/Identity.java rename to src/main/java/com/wb3tech/kernel/entity/Identity.java index 74acff9..1ded1be 100644 --- a/src/main/java/com/wb3tech/kernel/Identity.java +++ b/src/main/java/com/wb3tech/kernel/entity/Identity.java @@ -1,4 +1,4 @@ -package com.wb3tech.kernel; +package com.wb3tech.kernel.entity; import java.util.UUID; @@ -61,7 +61,7 @@ public UUID value() { return this.id; } - protected Identity copy() { + public Identity copy() { return new Identity(this.id); } diff --git a/src/main/java/com/wb3tech/kernel/valueobject/EmailAddress.java b/src/main/java/com/wb3tech/kernel/valueobject/EmailAddress.java index b0aecf8..a9f5ad3 100644 --- a/src/main/java/com/wb3tech/kernel/valueobject/EmailAddress.java +++ b/src/main/java/com/wb3tech/kernel/valueobject/EmailAddress.java @@ -1,7 +1,5 @@ package com.wb3tech.kernel.valueobject; -import com.wb3tech.kernel.ValueObject; - import java.util.regex.Pattern; public class EmailAddress extends ValueObject { diff --git a/src/main/java/com/wb3tech/kernel/valueobject/Person.java b/src/main/java/com/wb3tech/kernel/valueobject/Person.java index 5d7ce0d..d2e91bb 100644 --- a/src/main/java/com/wb3tech/kernel/valueobject/Person.java +++ b/src/main/java/com/wb3tech/kernel/valueobject/Person.java @@ -1,7 +1,5 @@ package com.wb3tech.kernel.valueobject; -import com.wb3tech.kernel.ValueObject; - public class Person extends ValueObject { private String givenName; diff --git a/src/main/java/com/wb3tech/kernel/valueobject/Username.java b/src/main/java/com/wb3tech/kernel/valueobject/Username.java index eea0f8f..055a006 100644 --- a/src/main/java/com/wb3tech/kernel/valueobject/Username.java +++ b/src/main/java/com/wb3tech/kernel/valueobject/Username.java @@ -1,7 +1,5 @@ package com.wb3tech.kernel.valueobject; -import com.wb3tech.kernel.ValueObject; - public class Username extends ValueObject { public String value; diff --git a/src/main/java/com/wb3tech/kernel/ValueObject.java b/src/main/java/com/wb3tech/kernel/valueobject/ValueObject.java similarity index 79% rename from src/main/java/com/wb3tech/kernel/ValueObject.java rename to src/main/java/com/wb3tech/kernel/valueobject/ValueObject.java index 01c04ec..c7f90df 100644 --- a/src/main/java/com/wb3tech/kernel/ValueObject.java +++ b/src/main/java/com/wb3tech/kernel/valueobject/ValueObject.java @@ -1,4 +1,4 @@ -package com.wb3tech.kernel; +package com.wb3tech.kernel.valueobject; public abstract class ValueObject { diff --git a/src/test/java/com/wb3tech/kernel/EntityTests.java b/src/test/java/com/wb3tech/kernel/EntityTests.java index 65bada3..e7c3382 100644 --- a/src/test/java/com/wb3tech/kernel/EntityTests.java +++ b/src/test/java/com/wb3tech/kernel/EntityTests.java @@ -1,5 +1,7 @@ package com.wb3tech.kernel; +import com.wb3tech.kernel.entity.Entity; +import com.wb3tech.kernel.entity.Identity; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Tag; @@ -24,7 +26,7 @@ public void ContainsValidIdentity() { @DisplayName("When a null Identity is provided, the entity should throw a NullPointerException with the message 'The identity is null.' .") public void IdentityThrowNullPointerException() { - var exception = assertThrows(NullPointerException.class, () -> new ExampleEntity().setId(null)); + var exception = assertThrows(NullPointerException.class, () -> ExampleEntity.Of(null)); Assertions.assertEquals("The identity is null.", exception.getMessage()); } @@ -33,7 +35,7 @@ public void IdentityThrowNullPointerException() { @DisplayName("When an invalid Identity is provided, the entity should throw a IllegalStateException with the message 'The identity is not valid.' .") public void IdentityThrowIllegalStateException() { - var exception = assertThrows(IllegalStateException.class, () -> new ExampleEntity().setId(Identity.Default())); + var exception = assertThrows(IllegalStateException.class, () -> ExampleEntity.Of(Identity.Default())); Assertions.assertEquals("The identity is not valid.", exception.getMessage()); } @@ -63,4 +65,11 @@ public void setValidIdentity() { public void setIdentity(Identity id) { this.setId(id); } + + public static Entity Of(Identity identity) { + var entity = new ExampleEntity(); + entity.setIdentity(identity); + return entity; + } + } diff --git a/src/test/java/com/wb3tech/kernel/IdentityTests.java b/src/test/java/com/wb3tech/kernel/IdentityTests.java index ab47dc3..1f23710 100644 --- a/src/test/java/com/wb3tech/kernel/IdentityTests.java +++ b/src/test/java/com/wb3tech/kernel/IdentityTests.java @@ -1,5 +1,6 @@ package com.wb3tech.kernel; +import com.wb3tech.kernel.entity.Identity; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Tag; From 5c9d3bdfdf359cb68ed433d4b295434a1377e211 Mon Sep 17 00:00:00 2001 From: Bill Bensing Date: Tue, 21 Jan 2020 06:50:38 -0500 Subject: [PATCH 2/2] moved tests to namespace which reflects the source code --- .../java/com/wb3tech/kernel/{ => entity}/EntityTests.java | 4 +--- .../java/com/wb3tech/kernel/{ => entity}/IdentityTests.java | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) rename src/test/java/com/wb3tech/kernel/{ => entity}/EntityTests.java (95%) rename src/test/java/com/wb3tech/kernel/{ => entity}/IdentityTests.java (99%) diff --git a/src/test/java/com/wb3tech/kernel/EntityTests.java b/src/test/java/com/wb3tech/kernel/entity/EntityTests.java similarity index 95% rename from src/test/java/com/wb3tech/kernel/EntityTests.java rename to src/test/java/com/wb3tech/kernel/entity/EntityTests.java index e7c3382..88d5b30 100644 --- a/src/test/java/com/wb3tech/kernel/EntityTests.java +++ b/src/test/java/com/wb3tech/kernel/entity/EntityTests.java @@ -1,7 +1,5 @@ -package com.wb3tech.kernel; +package com.wb3tech.kernel.entity; -import com.wb3tech.kernel.entity.Entity; -import com.wb3tech.kernel.entity.Identity; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Tag; diff --git a/src/test/java/com/wb3tech/kernel/IdentityTests.java b/src/test/java/com/wb3tech/kernel/entity/IdentityTests.java similarity index 99% rename from src/test/java/com/wb3tech/kernel/IdentityTests.java rename to src/test/java/com/wb3tech/kernel/entity/IdentityTests.java index 1f23710..ebd9e61 100644 --- a/src/test/java/com/wb3tech/kernel/IdentityTests.java +++ b/src/test/java/com/wb3tech/kernel/entity/IdentityTests.java @@ -1,4 +1,4 @@ -package com.wb3tech.kernel; +package com.wb3tech.kernel.entity; import com.wb3tech.kernel.entity.Identity; import org.junit.jupiter.api.Assertions;