Overview
The ResourceShell provides a composable framework for CRUD operations on arbitrary WildFly management resources. The ModelBrowser is currently the most prominent consumer. While the generic UX works well for the vast majority of resources, some resources benefit from a more specialized UI.
This umbrella issue tracks all SPI contracts for the resource shell. Each SPI contract is a separate sub-issue that can be designed and implemented independently.
Design Decisions
- Separate registries per concern — each SPI contract has its own registry rather than one monolithic interface. This keeps concerns decoupled and allows incremental adoption.
- Registration key — providers register against a combination of
Environment (which provides operation mode, stability level, product version, etc.) and an AddressTemplate (which can contain wildcards). This allows providers to be scoped by resource type and conditional on server capabilities.
- CDI-based discovery — providers are CDI beans discovered at startup. External modules can contribute providers by placing implementation JARs on the classpath — no compile-time dependency on the provider is required.
SPI Contracts
Current Architecture
The ResourceShell is a pure layout container that composes optional children:
ResourceShell
├── Sticky header group
│ ├── ResourceBreadcrumb (optional)
│ └── ResourceHeader (optional)
└── Content section
├── ResourceTabs (option A)
│ ├── Data tab → ResourceData → Pipeline → ResourceView / ResourceForm
│ ├── Attributes tab → AttributesTable
│ ├── Operations tab → OperationsTable
│ └── Capabilities tab → CapabilitiesTable
└── ResourceList (option B)
└── DataList of child resources
All intelligence lives in the composed children. The shell itself has no behavior and no data loading.
Package
All SPI contracts live in org.jboss.hal.ui.resource.spi.
Overview
The
ResourceShellprovides a composable framework for CRUD operations on arbitrary WildFly management resources. TheModelBrowseris currently the most prominent consumer. While the generic UX works well for the vast majority of resources, some resources benefit from a more specialized UI.This umbrella issue tracks all SPI contracts for the resource shell. Each SPI contract is a separate sub-issue that can be designed and implemented independently.
Design Decisions
Environment(which provides operation mode, stability level, product version, etc.) and anAddressTemplate(which can contain wildcards). This allows providers to be scoped by resource type and conditional on server capabilities.SPI Contracts
ResourceTabsor replace/remove default tabsCurrent Architecture
The
ResourceShellis a pure layout container that composes optional children:All intelligence lives in the composed children. The shell itself has no behavior and no data loading.
Package
All SPI contracts live in
org.jboss.hal.ui.resource.spi.