- Java 96.3%
- JavaScript 2.8%
- CSS 0.6%
- HTML 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Works through the open findings reported by SonarQube for this project. Real fixes wherever one exists; a commented suppression only where the finding cannot be resolved. Defects and deprecations - NonEmptyHostsCondition dereferenced getAnnotationAttributes(), which is declared nullable, and now answers false instead of throwing. The duplicate test that shadowed testConditionWithEmptyProperty covers that branch instead - dedicated exception types for the graph services and the semantic version parser, instead of RuntimeException - Jackson's deprecated asText() replaced by stringValue() - the pact test bases move off the deprecated @PactTestFor(port) to @MockServerConfig Readability and hygiene - duplicated literals extracted to constants in the three pact bases and ModelStub, which was also given a private constructor - unused imports, unused loop variables and a block of commented-out code removed; two reluctant regex quantifiers made possessive - two-case switches turned into if/else, a nested if merged, an empty default branch explained - RhosGrafanaClient.executeQuery split in two, bringing its cognitive complexity under the limit - AWSPrometheusProxyIT parameterized over its four queries - assertion style: contains(), hasToString(), isEmpty(), chained assertThat runs, and a useless eq() dropped - the @ApiResponses wrappers of the docs API replaced by repeatable @ApiResponse, plus two unused imports of mine Left in place, with a comment saying why - Aws4Signer: AwsV4HttpSigner reshapes the call (SignedRequest carries an SdkHttpRequest, HttpExecuteRequest needs an SdkHttpFullRequest) and nothing here can verify the resulting signature, since AWSPrometheusProxyIT is disabled and needs real AWS credentials. A wrong signature fails silently with a 403, so it wants its own change with a test behind it - ComponentContext keeps collect(toList()): Stream.toList() returns a non-public immutable class and the Thymeleaf templates read 'relation.value.size' reflectively, which then fails - the TODO markers point at JEAP-6593, a separate story - ArchitectureModel.teams is read by the equals/hashCode/toString Lombok generates, which Sonar cannot see - two "hardcoded URI" findings are a pact contract path and a classpath template location, neither a configurable endpoint Also names the changelog's Unreleased section [12.0.0]: the pom was already bumped to 12.0.0-SNAPSHOT for that breaking change, so it is a release, not pending work. The Sonar fixes here are [12.0.1]. |
||
| .mvn/wrapper | ||
| docs | ||
| jeap-archrepo-dbschema-model | ||
| jeap-archrepo-docgen | ||
| jeap-archrepo-importer-deploymentlog | ||
| jeap-archrepo-importer-messagetype | ||
| jeap-archrepo-importer-openapi | ||
| jeap-archrepo-importer-pactbroker | ||
| jeap-archrepo-importer-prometheus | ||
| jeap-archrepo-importer-prometheus-aws | ||
| jeap-archrepo-importer-prometheus-rhos | ||
| jeap-archrepo-importer-reaction-observer | ||
| jeap-archrepo-importers | ||
| jeap-archrepo-instance | ||
| jeap-archrepo-metamodel | ||
| jeap-archrepo-persistence | ||
| jeap-archrepo-test | ||
| jeap-archrepo-web | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| mvnw | ||
| pom.xml | ||
| publiccode.yml | ||
| README.md | ||
| SECURITY.md | ||
| setPomVersions.sh | ||
| THIRD-PARTY-LICENSES.md | ||
jEAP Arch Repo Service
The jEAP Arch Repo Service maintains the architecture inventory of a jEAP landscape: which systems and components exist, who owns them, which messages they exchange and which REST APIs they call. It imports that inventory continuously from the systems that already know it - deployment logs, metrics, the message type registry, the Pact broker - keeps it in one model in PostgreSQL, and exposes it over REST.
It is a library, not a deployable service: a jEAP microservice adds it as a Maven dependency and supplies the configuration. See Getting started.
flowchart LR
S["Deployment log<br/>Metrics<br/>Message type registry<br/>Pact broker<br/>Reaction observer"] --> I["Importers"]
I --> M["Architecture model"]
M --> DB[("PostgreSQL")]
DB --> A["REST APIs"]
DB --> C["Confluence export"]
Documentation
| Topic | Contents |
|---|---|
| Concepts | Why the arch repo exists, what it covers, and the conventions it relies on |
| Getting started | Embedding the library into a microservice instance and running it |
| Architecture | The modules, the architecture model, and the two scheduled jobs |
| Data model | The entities, their relationships and their tables |
| Importers | The importer plugin extension point and the importers that ship with the library |
| API | The REST API: the model, OpenAPI specs, database schemas and jobs |
| Docs API | The segregated read API over the model, for the jEAP Doc Service |
| Documentation generator | The generated Confluence documentation |
| Operations | The scheduled jobs, monitoring, and the maintenance that stays manual |
| Configuration | All configuration properties, with their defaults |
| Security | The two authentication mechanisms and the semantic roles |
Changes
This library is versioned using Semantic Versioning and all changes are documented in CHANGELOG.md following the format defined in Keep a Changelog.
Note
This repository is part the open source distribution of jEAP. See github.com/jeap-admin-ch/jeap for more information.
License
This repository is Open Source Software licensed under the Apache License 2.0.