Skip to content

Resource shell extension points #320

Description

@hpehl

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 extension points for the resource shell. Each extension point is a separate sub-issue that can be designed and implemented independently.

Design Decisions

  1. Separate registries per concern — each extension point has its own registry rather than one monolithic ResourceExtension interface. This keeps concerns decoupled and allows incremental adoption.
  2. Registration key — extensions register against a combination of Environment (which provides operation mode, stability level, product version, etc.) and an AddressTemplate (which can contain wildcards). This allows extensions to be scoped by resource type and conditional on server capabilities.

Extension Points

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions