Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions Chapter15/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Auto detect text files and perform LF normalization
* text=auto

# Java sources
*.java text diff=java
*.kt text diff=kotlin
*.groovy text diff=java
*.scala text diff=java
*.gradle text diff=java
*.gradle.kts text diff=kotlin

# These files are text and should be normalized (Convert crlf => lf)
*.css text diff=css
*.scss text diff=css
*.sass text
*.df text
*.htm text diff=html
*.html text diff=html
*.js text
*.jsp text
*.jspf text
*.jspx text
*.properties text
*.yaml text
*.yml text
*.tld text
*.tag text
*.tagx text
*.xml text

# These files are binary and should be left untouched
# (binary is a macro for -text -diff)
*.class binary
*.dll binary
*.ear binary
*.jar binary
*.so binary
*.war binary
*.jks binary

# Documentation
*.ipynb text eol=lf
*.markdown text diff=markdown
*.md text diff=markdown
*.mdwn text diff=markdown
*.mdown text diff=markdown
*.mkd text diff=markdown
*.mkdn text diff=markdown
*.mdtxt text
*.mdtext text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
copyright text
*COPYRIGHT* text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text

# Docker
Dockerfile text

# Scripts
*.bash text eol=lf
*.fish text eol=lf
*.sh text eol=lf
*.zsh text eol=lf
# These are explicitly windows files and should use crlf
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Common build-tool wrapper scripts ('.cmd' versions are handled by 'Common.gitattributes')
mvnw text eol=lf
gradlew text eol=lf

*.md linguist-detectable

#
# Exclude files from exporting
#

.gitattributes export-ignore
.gitignore export-ignore
.gitkeep export-ignore
40 changes: 40 additions & 0 deletions Chapter15/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Package Files #
*.jar
*.war
*.ear

# OS
.DS_Store

# Tests
/coverage
/.nyc_output

# IDEs and editors
/.idea
.project
.classpath
*.class
.c9/
*.launch
.settings/
*.sublime-workspace
*.iml
target
**/*.iml
**/target
.factorypath
*.factorypath
/k8s/local
.gradle
!gradle/wrapper/*.jar

# IDE - VSCode
.vscode/
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

#Sonarqube
2 changes: 1 addition & 1 deletion Chapter15/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM adoptopenjdk/openjdk11:x86_64-alpine-jre11u-nightly
FROM eclipse-temurin:17.0.6_10-jre-alpine
ENV APP_FILE_RUNNER bootstrap-1.0-SNAPSHOT-runner.jar
ENV APP_HOME /usr/apps
EXPOSE 8080
Expand Down
2 changes: 1 addition & 1 deletion Chapter15/Dockerfile-native
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM registry.access.redhat.com/ubi8/ubi-minimal
FROM redhat/ubi8-minimal:8.7
ENV APP_FILE_RUNNER bootstrap-1.0-SNAPSHOT-runner
ENV APP_HOME /work
EXPOSE 8080
Expand Down
10 changes: 9 additions & 1 deletion Chapter15/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,12 @@ docker run -p 5555:8080 topology-inventory-native
**To access the Dockerized application**
```
http://localhost:5555/q/swagger-ui/
```
```
**To start the application from the terminal (without docker)**
```
mvn quarkus:dev
```
**To access the application (Swagger UI) without docker**
```
http://localhost:8080/q/swagger-ui/
```
8 changes: 6 additions & 2 deletions Chapter15/application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,20 @@
<artifactId>topology-inventory</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>application</artifactId>

<dependencies>
<!-- internal project dependencies -->
<dependency>
<groupId>dev.davivieira</groupId>
<artifactId>domain</artifactId>
</dependency>
<!-- 3rd party test dependencies-->
<dependency>
<groupId>io.quarkiverse.cucumber</groupId>
<artifactId>quarkus-cucumber</artifactId>
<version>0.3.0</version>
<version>0.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -38,4 +42,4 @@
<scope>test</scope>
</dependency>
</dependencies>
</project>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,24 @@
import dev.davivieira.topologyinventory.domain.entity.EdgeRouter;
import dev.davivieira.topologyinventory.domain.entity.Switch;
import dev.davivieira.topologyinventory.domain.service.NetworkService;
import dev.davivieira.topologyinventory.domain.vo.IP;
import dev.davivieira.topologyinventory.domain.vo.Id;
import dev.davivieira.topologyinventory.domain.vo.Network;
import dev.davivieira.topologyinventory.domain.valueobject.IP;
import dev.davivieira.topologyinventory.domain.valueobject.Id;
import dev.davivieira.topologyinventory.domain.valueobject.Network;
import lombok.NoArgsConstructor;

import java.util.function.Predicate;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;

@ApplicationScoped
@NoArgsConstructor
public class NetworkManagementInputPort implements NetworkManagementUseCase {

private RouterManagementOutputPort routerManagementOutputPort;
@Inject
RouterManagementOutputPort routerManagementOutputPort;
public NetworkManagementInputPort(RouterManagementOutputPort routerManagementOutputPort) {
this.routerManagementOutputPort = routerManagementOutputPort;
}

@Override
public Network createNetwork(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,27 @@
import dev.davivieira.topologyinventory.domain.entity.CoreRouter;
import dev.davivieira.topologyinventory.domain.entity.Router;
import dev.davivieira.topologyinventory.domain.entity.factory.RouterFactory;
import dev.davivieira.topologyinventory.domain.vo.IP;
import dev.davivieira.topologyinventory.domain.vo.Id;
import dev.davivieira.topologyinventory.domain.vo.Location;
import dev.davivieira.topologyinventory.domain.vo.Model;
import dev.davivieira.topologyinventory.domain.vo.RouterType;
import dev.davivieira.topologyinventory.domain.vo.Vendor;
import dev.davivieira.topologyinventory.domain.valueobject.IP;
import dev.davivieira.topologyinventory.domain.valueobject.Id;
import dev.davivieira.topologyinventory.domain.valueobject.Location;
import dev.davivieira.topologyinventory.domain.valueobject.Model;
import dev.davivieira.topologyinventory.domain.valueobject.RouterType;
import dev.davivieira.topologyinventory.domain.valueobject.Vendor;
import dev.davivieira.topologyinventory.status.RouterInfo;
import lombok.NoArgsConstructor;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;

@ApplicationScoped
public class RouterManagementInputPort implements RouterManagementUseCase {
@NoArgsConstructor
public final class RouterManagementInputPort implements RouterManagementUseCase {
private RouterManagementOutputPort routerManagementOutputPort;

@Inject
RouterManagementOutputPort routerManagementOutputPort;
public RouterManagementInputPort(RouterManagementOutputPort routerManagementOutputPort) {
this.routerManagementOutputPort = routerManagementOutputPort;
}

@Override
public Router createRouter(Id id,
Expand Down Expand Up @@ -70,4 +75,4 @@ public String getRouterStatus() {
var routerInfo = new RouterInfo();
return routerInfo.getRouterStatus();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,23 @@
import dev.davivieira.topologyinventory.application.usecases.SwitchManagementUseCase;
import dev.davivieira.topologyinventory.domain.entity.EdgeRouter;
import dev.davivieira.topologyinventory.domain.entity.Switch;
import dev.davivieira.topologyinventory.domain.vo.*;
import dev.davivieira.topologyinventory.domain.valueobject.*;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;

@ApplicationScoped
public class SwitchManagementInputPort implements SwitchManagementUseCase {
@NoArgsConstructor
public final class SwitchManagementInputPort implements SwitchManagementUseCase {

private SwitchManagementOutputPort switchManagementOutputPort;

@Inject
SwitchManagementOutputPort switchManagementOutputPort;
SwitchManagementInputPort(SwitchManagementOutputPort switchManagementOutputPort) {
this.switchManagementOutputPort = switchManagementOutputPort;
}

@Override
public Switch createSwitch(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.davivieira.topologyinventory.application.ports.output;

import dev.davivieira.topologyinventory.domain.entity.Router;
import dev.davivieira.topologyinventory.domain.vo.Id;
import dev.davivieira.topologyinventory.domain.valueobject.Id;

public interface RouterManagementOutputPort {
Router retrieveRouter(Id id);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.davivieira.topologyinventory.application.ports.output;

import dev.davivieira.topologyinventory.domain.entity.Switch;
import dev.davivieira.topologyinventory.domain.vo.Id;
import dev.davivieira.topologyinventory.domain.valueobject.Id;

public interface SwitchManagementOutputPort {
Switch retrieveSwitch(Id id);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.davivieira.topologyinventory.application.usecases;

import dev.davivieira.topologyinventory.domain.entity.Switch;
import dev.davivieira.topologyinventory.domain.vo.IP;
import dev.davivieira.topologyinventory.domain.vo.Network;
import dev.davivieira.topologyinventory.domain.valueobject.IP;
import dev.davivieira.topologyinventory.domain.valueobject.Network;

public interface NetworkManagementUseCase {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import dev.davivieira.topologyinventory.domain.entity.CoreRouter;
import dev.davivieira.topologyinventory.domain.entity.Router;
import dev.davivieira.topologyinventory.domain.vo.IP;
import dev.davivieira.topologyinventory.domain.vo.Id;
import dev.davivieira.topologyinventory.domain.vo.Location;
import dev.davivieira.topologyinventory.domain.vo.Model;
import dev.davivieira.topologyinventory.domain.vo.RouterType;
import dev.davivieira.topologyinventory.domain.vo.Vendor;
import dev.davivieira.topologyinventory.domain.valueobject.IP;
import dev.davivieira.topologyinventory.domain.valueobject.Id;
import dev.davivieira.topologyinventory.domain.valueobject.Location;
import dev.davivieira.topologyinventory.domain.valueobject.Model;
import dev.davivieira.topologyinventory.domain.valueobject.RouterType;
import dev.davivieira.topologyinventory.domain.valueobject.Vendor;

public interface RouterManagementUseCase {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import dev.davivieira.topologyinventory.domain.entity.EdgeRouter;
import dev.davivieira.topologyinventory.domain.entity.Switch;
import dev.davivieira.topologyinventory.domain.vo.IP;
import dev.davivieira.topologyinventory.domain.vo.Id;
import dev.davivieira.topologyinventory.domain.vo.Location;
import dev.davivieira.topologyinventory.domain.vo.Model;
import dev.davivieira.topologyinventory.domain.vo.SwitchType;
import dev.davivieira.topologyinventory.domain.vo.Vendor;
import dev.davivieira.topologyinventory.domain.valueobject.IP;
import dev.davivieira.topologyinventory.domain.valueobject.Id;
import dev.davivieira.topologyinventory.domain.valueobject.Location;
import dev.davivieira.topologyinventory.domain.valueobject.Model;
import dev.davivieira.topologyinventory.domain.valueobject.SwitchType;
import dev.davivieira.topologyinventory.domain.valueobject.Vendor;

public interface SwitchManagementUseCase {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
import dev.davivieira.topologyinventory.domain.entity.EdgeRouter;
import dev.davivieira.topologyinventory.domain.entity.Router;
import dev.davivieira.topologyinventory.domain.entity.Switch;
import dev.davivieira.topologyinventory.domain.vo.IP;
import dev.davivieira.topologyinventory.domain.vo.Id;
import dev.davivieira.topologyinventory.domain.vo.Location;
import dev.davivieira.topologyinventory.domain.vo.Model;
import dev.davivieira.topologyinventory.domain.vo.Network;
import dev.davivieira.topologyinventory.domain.vo.RouterType;
import dev.davivieira.topologyinventory.domain.vo.SwitchType;
import dev.davivieira.topologyinventory.domain.vo.Vendor;
import dev.davivieira.topologyinventory.domain.valueobject.IP;
import dev.davivieira.topologyinventory.domain.valueobject.Id;
import dev.davivieira.topologyinventory.domain.valueobject.Location;
import dev.davivieira.topologyinventory.domain.valueobject.Model;
import dev.davivieira.topologyinventory.domain.valueobject.Network;
import dev.davivieira.topologyinventory.domain.valueobject.RouterType;
import dev.davivieira.topologyinventory.domain.valueobject.SwitchType;
import dev.davivieira.topologyinventory.domain.valueobject.Vendor;

import java.util.ArrayList;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import dev.davivieira.topologyinventory.application.usecases.NetworkManagementUseCase;
import dev.davivieira.topologyinventory.domain.service.NetworkService;
import dev.davivieira.topologyinventory.domain.vo.IP;
import dev.davivieira.topologyinventory.domain.vo.Network;
import dev.davivieira.topologyinventory.domain.valueobject.IP;
import dev.davivieira.topologyinventory.domain.valueobject.Network;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
Expand Down
Loading