https://github.com/quarkusio/quarkus-registry-descriptor-resolver
Quarkus Extension Registry API
https://github.com/quarkusio/quarkus-registry-descriptor-resolver
Last synced: 3 months ago
JSON representation
Quarkus Extension Registry API
- Host: GitHub
- URL: https://github.com/quarkusio/quarkus-registry-descriptor-resolver
- Owner: quarkusio
- License: apache-2.0
- Archived: true
- Created: 2020-03-10T18:30:58.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-22T14:16:31.000Z (over 5 years ago)
- Last Synced: 2024-09-26T19:22:12.490Z (about 1 year ago)
- Language: Java
- Homepage:
- Size: 423 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Quarkus Registry Descriptor
This project provides a model and a parser API to handle the Quarkus extension registry.
## Definitions
### Repository
A repository is a local directory (which can be cloned from a Git repository) with the following structure:
```bash
.
├── extensions
│ └── jsf.json
└── platforms.json
```
### Extensions
For maintenance purposes, each extension is declared in its own file and has the following structure:
```json
{
"group-id": "org.apache.myfaces.core.extensions.quarkus",
"artifact-id": "quarkus-myfaces",
"releases": [
{
"version": "2.3-next",
"quarkus-core": "1.3.1.Final"
},
{
"version": "2.4-next",
"quarkus-core": "1.3.2.Final"
}
]
}
```
The Quarkus extension MUST be released to a Maven repository. The descriptor states the GAV and the Quarkus version for each release (which is listed here for performance purposes - if not specified, the parser will attempt to resolve using the Maven Resolver API)
### Platforms
Platforms are a set of extensions of a specific version and MUST exist as a BOM. Since the order is important, it is declared as a single JSON (ordered by priority - the preferred BOMs in the top)
```json
[
{
"group-id": "io.quarkus",
"artifact-id": "quarkus-universe-bom",
"releases": [
{
"version": "1.3.1.Final"
},
{
"version": "1.3.2.Final"
}
]
},
{
"group-id": "io.quarkus",
"artifact-id": "quarkus-bom",
"artifact-id-json": "quarkus-bom-descriptor-json",
"releases": [
{
"version": "1.3.1.Final"
},
{
"version": "1.3.2.Final"
},
{
"version": "1.4.0.CR1"
}
]
}
]
```
The idea is to provide an utility that would allow to perform all sorts of queries across the registry, such as:
* which Quarkus Core versions are available;
* which platforms are available;
* which extensions are available.
For a given Quarkus Core version:
* list the available platforms;
* list all the extensions including those that aren't a part of any platform.
For a given platform:
* list the platform versions available (i.e. releases of this platform);
* list Quarkus Core versions it supports.
For a given platform release:
* Quarkus Core version;
* Extension releases that are included.
For a given extension:
* list available versions of the extension (i.e. releases of the extension);
* (The list could be easily extended)
For a given extension release:
* Quarkus Core versions it was found to be compatible with;
* Platforms it is appearing in.