{"id":24594781,"url":"https://github.com/luisboto/hexagonalspring","last_synced_at":"2025-08-10T08:42:14.705Z","repository":{"id":202752952,"uuid":"707229770","full_name":"LuisBoto/HexagonalSpring","owner":"LuisBoto","description":"💠 Simple multimodule Maven/Spring project exposing an endpoint using hexagonal architecture.","archived":false,"fork":false,"pushed_at":"2023-10-25T13:34:43.000Z","size":203,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T05:18:37.496Z","etag":null,"topics":["e2e-testing","hexagonal-architecture","integration-testing","jpa","jpa-hibernate","maven","mockito-junit-test","multimodule-maven","spring","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LuisBoto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-19T13:30:31.000Z","updated_at":"2023-10-21T11:25:52.000Z","dependencies_parsed_at":"2023-10-25T12:59:42.772Z","dependency_job_id":null,"html_url":"https://github.com/LuisBoto/HexagonalSpring","commit_stats":null,"previous_names":["luisboto/hexagonalspring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LuisBoto/HexagonalSpring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisBoto%2FHexagonalSpring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisBoto%2FHexagonalSpring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisBoto%2FHexagonalSpring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisBoto%2FHexagonalSpring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuisBoto","download_url":"https://codeload.github.com/LuisBoto/HexagonalSpring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuisBoto%2FHexagonalSpring/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269698485,"owners_count":24461195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e2e-testing","hexagonal-architecture","integration-testing","jpa","jpa-hibernate","maven","mockito-junit-test","multimodule-maven","spring","spring-boot"],"created_at":"2025-01-24T11:45:13.535Z","updated_at":"2025-08-10T08:42:14.666Z","avatar_url":"https://github.com/LuisBoto.png","language":"Java","readme":"# HexagonalSpring\nSimple Spring multimodule Maven project exposing an endpoint using hexagonal architecture.\n\n## Compiling and Running\nTo run the project right out of the box, navigate to the *hexagonalApplication/* module folder and run:\n```\nmvn spring-boot:run\n```\n\nOtherwise, using the included maven wrapper, run the following command to generate a JAR file:\n```\n./mvnw clean package\n```\n\nAfter this, there should be a compiled .jar file within the startup module's target folder:\n```\njava -jar ./hexagonalApplication/target/hexagonalApplication-0.0.1.jar\n```\n\n## Project structure:\nThe parent pom declares 4 modules: **inbound**, **outbound**, **core**, and the **hexagonalApplication** module. This last one contains the main class, e2e tests, and dependencies to the other modules just so that everything is propertly scanned and loaded upon startup. The core module does not depend on anything.\n\nThe inbound module contains the REST API controller layers and config, and the outbound module contains the persistence layer and JPA implementations. Through a dependency inversion against the core module, this last one consists exclusively of the business and service logic.\nThe final module structure is the following:\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\".readme/moduleDiagram.png\" alt=\"Module structure diagram\"/\u003e\n\u003c/p\u003e\n\n## Testing\nThis project includes configured, ready to run e2e and integration testing dependencies. \n\nThe core, inbound, and outbound modules all contain some minor **unitary tests** using **Mockito**.\n\nThe startup **hexagonalApplication** module contains **e2e tests** using **RestAssured**; and the **outbound** module also contains provider **integration tests** against the embedded H2 database.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisboto%2Fhexagonalspring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluisboto%2Fhexagonalspring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluisboto%2Fhexagonalspring/lists"}