MCPcopy Index your code
hub / github.com/PacktPublishing/-Designing-Hexagonal-Architecture-with-Java---Second-Edition

github.com/PacktPublishing/-Designing-Hexagonal-Architecture-with-Java---Second-Edition @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
4,153 symbols 13,435 edges 1,072 files 41 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Designing Hexagonal Architecture with Java

Designing Hexagonal Architecture with Java

This is the code repository for Designing Hexagonal Architecture with Java, published by Packt.

Build maintainable and long-lasting applications with Java and Quarkus

What is this book about?

This book covers the following exciting features: * Apply SOLID principles to the hexagonal architecture * Assemble business rules algorithms using the specified design pattern * Combine domain-driven design techniques with hexagonal principles to create powerful domain models * Employ adapters to enable system compatibility with various protocols such as REST, gRPC, and WebSocket * Create a module and package structure based on hexagonal principles * Use Java modules to enforce dependency inversion and ensure software component isolation * Implement Quarkus DI to manage the life cycle of input and output ports

If you feel this book is for you, get your copy today!

https://www.packtpub.com/

Instructions and Navigations

All of the code is organized into folders. For example, Chapter05.

The code will look like the following:

public interface RouterNetworkUseCase {
 Router addNetworkToRouter(RouterId,
 Network network);
 Router getRouter(RouterId routerId);
}

Following is what you need for this book: This book is for software architects and Java developers looking to improve code maintainability and enhance productivity with an architecture that allows changes in technology without compromising business logic. Intermediate knowledge of the Java programming language and familiarity with Jakarta EE will help you to get the most out of this book.

With the following software and hardware list you can run all code files present in the book (Chapter 1-17).

Software and Hardware List

Chapter Software required OS required
1-17 Maven 3.8 Windows, Mac OS X, and Linux (Any)
1-17 Java 17 SE Development Kit Windows, Mac OS X, and Linux (Any)
1-17 Docker Windows, Mac OS X, and Linux (Any)
1-17 Postman Windows, Mac OS X, and Linux (Any)
1-17 Newman Windows, Mac OS X, and Linux (Any)
1-17 Kafka Mac OS X, and Linux (Any)

Related products

Get to Know the Author

Davi Vieira is a software craftsman with a vested interest in the challenges faced by large enterprises in software design, development, and architecture. He has more than 10 years of experience constructing and maintaining complex, long-lasting, and mission-critical systems using object-oriented languages. He values the good lessons and the software development tradition left by others who came before him. Inspired by this software tradition, he develops and evolves his ideas.

Extension points exported contracts — how you extend this code

EventParser (Interface)
(no doc) [10 implementers]
Chapter04/src/main/java/dev/davivieira/domain/policy/EventParser.java
Specification (Interface)
(no doc) [15 implementers]
Chapter14/domain/src/main/java/dev/davivieira/topologyinventory/domain/specification/Specification.java
RouterManagementOutputPort (Interface)
(no doc) [26 implementers]
Chapter14/application/src/main/java/dev/davivieira/topologyinventory/application/ports/output/RouterManagementOutputPort.java
Specification (Interface)
(no doc) [15 implementers]
Chapter07/domain/src/main/java/dev/davivieira/topologyinventory/domain/specification/Specification.java
RouterManagementOutputPort (Interface)
(no doc) [24 implementers]
Chapter07/application/src/main/java/dev/davivieira/topologyinventory/application/ports/output/RouterManagementOutputPort.java
Specification (Interface)
(no doc) [15 implementers]
Chapter06/domain/src/main/java/dev/davivieira/topologyinventory/domain/specification/Specification.java
EventParser (Interface)
(no doc) [10 implementers]
Chapter03/src/main/java/dev/davivieira/domain/policy/EventParser.java
Specification (Interface)
(no doc) [15 implementers]
Chapter12/domain/src/main/java/dev/davivieira/topologyinventory/domain/specification/Specification.java

Core symbols most depended-on inside this repo

getId
called by 328
Chapter03/src/main/java/dev/davivieira/domain/vo/RouterId.java
equals
called by 188
Chapter04/src/main/java/dev/davivieira/domain/entity/Event.java
getRouterType
called by 124
Chapter01/src/main/java/dev/davivieira/domain/Router.java
getRouters
called by 122
Chapter02/src/main/java/dev/davivieira/application/usecases/RouterViewUseCase.java
retrieveRouter
called by 105
Chapter08/application/src/main/java/dev/davivieira/topologyinventory/application/usecases/RouterManagementUseCase.java
createRouter
called by 72
Chapter08/application/src/main/java/dev/davivieira/topologyinventory/application/usecases/RouterManagementUseCase.java
removeNetworkFromSwitch
called by 63
Chapter08/application/src/main/java/dev/davivieira/topologyinventory/application/usecases/NetworkManagementUseCase.java
getRouterId
called by 60
Chapter04/src/main/java/dev/davivieira/domain/entity/Router.java

Shape

Method 2,724
Class 814
Function 398
Enum 129
Interface 88

Languages

Java90%
TypeScript10%

Modules by API surface

Chapter05/src/main/web/js/d3.v3.min.js389 symbols
Chapter16/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter14/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter13/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter12/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter11/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter10/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter09/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter08/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter07/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter06/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter17/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/mappers/RouterMapper.java13 symbols

Datastores touched

(mysql)Database · 1 repos
inventoryDatabase · 1 repos

For agents

$ claude mcp add -Designing-Hexagonal-Architecture-with-Java---Second-Edition \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact