Skip to content

Commit 70795c3

Browse files
committed
Add Hexagonal Architecture assignments.
1 parent 5e7f53d commit 70795c3

17 files changed

Lines changed: 32 additions & 0 deletions

server/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma
7171
<artifactId>jmolecules-starter-ddd</artifactId>
7272
</dependency>
7373

74+
<dependency>
75+
<groupId>org.jmolecules</groupId>
76+
<artifactId>jmolecules-hexagonal-architecture</artifactId>
77+
</dependency>
7478
<dependency>
7579
<groupId>org.jmolecules.integrations</groupId>
7680
<artifactId>jmolecules-jpa</artifactId>

server/src/main/java/de/odrotbohm/restbucks/dashboard/Dashboard.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import javax.money.MonetaryAmount;
2727

2828
import org.javamoney.moneta.Money;
29+
import org.jmolecules.architecture.hexagonal.PrimaryAdapter;
2930
import org.springframework.data.rest.webmvc.RepositoryLinksResource;
3031
import org.springframework.hateoas.server.RepresentationModelProcessor;
3132
import org.springframework.modulith.events.ApplicationModuleListener;
@@ -42,6 +43,7 @@
4243
*
4344
* @author Oliver Drotbohm
4445
*/
46+
@PrimaryAdapter
4547
@RestController
4648
@RequiredArgsConstructor
4749
class Dashboard implements RepresentationModelProcessor<RepositoryLinksResource> {

server/src/main/java/de/odrotbohm/restbucks/drinks/Drinks.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import de.odrotbohm.restbucks.drinks.Drink.DrinkIdentifier;
1919

20+
import org.jmolecules.architecture.hexagonal.SecondaryPort;
2021
import org.jspecify.annotations.Nullable;
2122
import org.springframework.data.domain.Sort;
2223
import org.springframework.data.repository.CrudRepository;
@@ -25,6 +26,7 @@
2526
/**
2627
* @author Oliver Drotbohm
2728
*/
29+
@SecondaryPort
2830
public interface Drinks extends CrudRepository<Drink, DrinkIdentifier> {
2931

3032
@Nullable

server/src/main/java/de/odrotbohm/restbucks/drinks/DrinksModelProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.util.Optional;
2121

22+
import org.jmolecules.architecture.hexagonal.PrimaryAdapter;
2223
import org.springframework.hateoas.CollectionModel;
2324
import org.springframework.hateoas.EntityModel;
2425
import org.springframework.hateoas.server.RepresentationModelProcessor;
@@ -28,6 +29,7 @@
2829
* @author Oliver Drotbohm
2930
*/
3031
@Component
32+
@PrimaryAdapter
3133
class DrinksModelProcessor implements RepresentationModelProcessor<CollectionModel<EntityModel<Drink>>> {
3234

3335
/*

server/src/main/java/de/odrotbohm/restbucks/drinks/DrinksOptions.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.util.Optional;
2121

22+
import org.jmolecules.architecture.hexagonal.PrimaryAdapter;
2223
import org.springframework.data.rest.webmvc.BasePathAwareController;
2324
import org.springframework.data.domain.Sort;
2425
import org.springframework.hateoas.LinkRelation;
@@ -36,6 +37,7 @@
3637
/**
3738
* @author Oliver Drotbohm
3839
*/
40+
@PrimaryAdapter
3941
@BasePathAwareController
4042
public class DrinksOptions {
4143

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
@org.jspecify.annotations.NullMarked
2+
@org.jmolecules.architecture.hexagonal.Application
23
package de.odrotbohm.restbucks.drinks;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
@org.jspecify.annotations.NullMarked
2+
@org.jmolecules.architecture.hexagonal.Application
23
package de.odrotbohm.restbucks.engine;

server/src/main/java/de/odrotbohm/restbucks/order/Orders.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import java.util.List;
2424

25+
import org.jmolecules.architecture.hexagonal.SecondaryPort;
2526
import org.jmolecules.ddd.integration.AssociationResolver;
2627
import org.springframework.context.event.EventListener;
2728
import org.springframework.data.repository.CrudRepository;
@@ -35,6 +36,7 @@
3536
*
3637
* @author Oliver Drotbohm
3738
*/
39+
@SecondaryPort
3840
@RepositoryRestResource(excerptProjection = OrderProjection.class)
3941
public interface Orders extends CrudRepository<Order, OrderIdentifier>,
4042
AssociationResolver<Order, OrderIdentifier>,
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/**
22
* Manages orders of drinks.
33
*/
4+
@org.jmolecules.architecture.hexagonal.Application
45
@org.jspecify.annotations.NullMarked
56
package de.odrotbohm.restbucks.order;

server/src/main/java/de/odrotbohm/restbucks/order/web/CoreOrderResourceProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import lombok.NonNull;
2020
import lombok.RequiredArgsConstructor;
2121

22+
import org.jmolecules.architecture.hexagonal.PrimaryAdapter;
2223
import org.springframework.hateoas.EntityModel;
2324
import org.springframework.hateoas.server.EntityLinks;
2425
import org.springframework.hateoas.server.RepresentationModelProcessor;
@@ -31,6 +32,7 @@
3132
* @author Oliver Drotbohm
3233
*/
3334
@Component
35+
@PrimaryAdapter
3436
@RequiredArgsConstructor
3537
class CoreOrderResourceProcessor implements RepresentationModelProcessor<EntityModel<Order>> {
3638

0 commit comments

Comments
 (0)