WildFly Preview support for Jakarta MVC 2.1

In  ee

Overview

Jakarta MVC is a Jakarta specification project for providing support for the Model-View-Controller pattern in web applications. The specification has had three releases, and a fourth is in the works. It has been considered for incorporation in the Jakarta EE Platform or Web Profile, although it was not included in Jakarta EE 11.

The intent here is to provide preview support for Jakarta MVC in the WildFly ecosystem in order to gain broader experience with the technology and to better gauge community interest.

The integration is straightforward; just a matter of exposing a couple of modules with an API and two implementation artifacts to deployments. Users can easily enough package these artifacts in their own application artifacts; WildFly providing its own integration saves them needing to manage the implementation.

Issue Metadata

Issue

*

Stability Level

  • Experimental

  • [X] Preview

  • Community

  • default

Dev Contacts

QE Contacts

Testing By

  • [X] Engineering

  • QE

Affected Projects or Components

Other Interested Projects

Relevant Installation Types

  • Traditional standalone server (unzipped or provisioned by Galleon)

  • Managed domain

  • OpenShift s2i

  • Bootable jar

Requirements

Hard Requirements

  • Provide an extension/subsystem that makes modules containing the Jakarta MVC 2.1 api and the Eclipse Krazo implementation available to an application.

  • Provide an 'mvc-krazo' Galleon layer

    • The layer will depend on the 'bean-validation', 'cdi' and 'jaxrs-core' layers, in line with Jakarta MVC’s dependencies on other EE specifications.

  • Provide an extension/subsystem artifact jar, and a 'galleon-shared' src zip for use in other feature packs.

  • Incorporate the above in the 'wildfly-preview' feature pack.

  • Provide a Galleon feature pack that depends on wildfly-ee and that can install the Jakarta MVC integration into standard WildFly.

  • Extension will advertise itself as having stability level 'preview'.

Nice-to-Have Requirements

Non-Requirements

  • Inclusion of the extension/subsystem in any standard OOTB config, including docs/examples configs.

  • Inclusion in any of the WildFly user boms.

  • Quickstart.

Future Work

  • Possible integration into the 'wildfly' or 'wildfly-ee' feature pack.

  • Add a quickstart

    • Requires integration into 'wildfly' or 'wildfly-ee' FP, along with Quickstart project support for preview features.

Backwards Compatibility

Default Configuration

No incompatibility.

Importing Existing Configuration

No incompatibility.

Deployments

No incompatibility.

Interoperability

No incompatibility.

Initially, use WildFly Extras to house the source code.

Security Considerations

None.

Test Plan

  • Standard subsystem tests (parsing and marshalling; Stage.MODEL execution)

  • Pass the Jakarta MVC TCK

    • TCK runner should support passing in the GAV of the feature pack to provision the server, allowing execution against both the wildfly-preview feature pack and the mvc-krazo-specific feature pack

  • Smoke test in the testsuite/preview/basic module

  • Test the layer by itself and as part of the all-layers provisioning in testsuite/layers/LayersTestCase

Community Documentation

Release Note Content

WildFly now provides preview support for Jakarta MVC, using the Eclipse Krazo implementation. This is available out of the box in WildFly Preview and can be added to a standard WildFly installation using a new 'mvc-krazo' Galleon feature pack available from WildFly Extras.