Skip to content

Commit

Permalink
Merge pull request #17490 from bstansberry/WFLY-18838
Browse files Browse the repository at this point in the history
[WFLY-18838] Preview support for Jakarta MVC 2.1
  • Loading branch information
bstansberry committed Dec 19, 2023
2 parents d408f16 + 6e0d46a commit b93ac20
Show file tree
Hide file tree
Showing 20 changed files with 475 additions and 91 deletions.
34 changes: 34 additions & 0 deletions boms/preview-ee/pom.xml
Expand Up @@ -69,6 +69,40 @@
</exclusion>
</exclusions>
</dependency>

<!-- Import the MVC runtime deps -->
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>mvc-krazo-galleon-shared</artifactId>
<version>${preview.version.org.wildfly.mvc.krazo}</version>
<type>pom</type>
<scope>import</scope>
</dependency>

<dependency>
<groupId>org.wildfly</groupId>
<artifactId>mvc-krazo-galleon-shared</artifactId>
<version>${preview.version.org.wildfly.mvc.krazo}</version>
<type>zip</type>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>mvc-krazo-subsystem</artifactId>
<version>${preview.version.org.wildfly.mvc.krazo}</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>org.wildfly.deployment</groupId>
<artifactId>wildfly-ee-9-deployment-transformer</artifactId>
Expand Down
5 changes: 4 additions & 1 deletion docs/src/main/asciidoc/Getting_Started_Guide.adoc
Expand Up @@ -33,7 +33,7 @@ application server offerings. WildFly {wildflyVersion} is an exceptionally fast,
lightweight and powerful implementation of the Jakarta
Enterprise Edition 10 specifications. WildFly's modular architecture built on the
JBoss Modules and JBoss Modular Service Container projects enables services on-demand when your
application requires them. The table below lists the technologies available in WildFly {wildflyVersion}
application requires them. The table below lists the Jakarta technologies available in WildFly {wildflyVersion}
server configuration profiles.

[cols=",,,,",options="header"]
Expand Down Expand Up @@ -79,6 +79,9 @@ Profile |WildFly {wildflyVersion} Full Configuration |WildFly {wildflyVersion} D

|Jakarta Messaging 3.1 |X |-- |X |--

| Jakarta MVC 2.1
(_WildFly Preview only_)|--|--|--|--

|Jakarta Persistence 3.1 |X |X |X |X

|Jakarta RESTful Web Services 3.1 |X |X |X |X
Expand Down
7 changes: 4 additions & 3 deletions docs/src/main/asciidoc/WildFly_and_WildFly_Preview.adoc
Expand Up @@ -57,8 +57,8 @@ The zip or tar.gz file for WildFly Preview is available at link:https://wildfly.
right next to the main WildFly release files for the same version.

For bootable jar users and Galleon CLI users, we provide a Galleon feature pack for WildFly Preview. The
Galleon feature pack location for the feature pack is ``wildfly-preview@maven(org.jboss.universe:community-universe)``.
This feature pack is the WildFly Preview analogue to main WildFly's ``wildfly@maven(org.jboss.universe:community-universe)``.
Galleon feature pack location for the feature pack is ``wildfly-preview@maven(org.jboss.universe:community-universe)`` and the Maven coordinate is ``org.wildlfly:wildfly-preview-feature-pack``.
This feature pack is the WildFly Preview analogue to main WildFly's ``wildfly@maven(org.jboss.universe:community-universe)`` (Maven coordinate ``org.wildfly:wildfly-galleon-pack``).

== WildFly Preview and Jakarta EE

Expand Down Expand Up @@ -90,7 +90,7 @@ content into the internal content repo. For unmanaged deployments we use the ori
and WildFly Preview won't modify those files as we don't regard them as being 'owned' by the server.

Note that the deployment transformation feature will not update the deployment to adapt to any API differences between
Jakarta EE 9 and EE 10. It only covers the javax to jakarta name changes that came with EE 9.
Jakarta EE 9 and EE 10 or later. It only covers the javax to jakarta name changes that came with EE 9.

In the long run it's better for users if they either convert their application source to EE 10 APIs, or use build-time
tooling that we expect the Jakarta ecosystem to provide over time to do transformation at build time. But some
Expand All @@ -117,6 +117,7 @@ configuration to act as a primary or backup. An embedded messaging broker also h
requirements than a server primarily dedicated to handling HTTP requests would have. Note however that running an
embedded broker is still supported. We've added to the $WILDFLY_HOME/docs/examples/configs folder an example
``standalone-activemq-embedded.xml`` configuration showing its use.
* WildFly Preview provides out of the box support for link:https://jakarta.ee/specifications/mvc[Jakarta MVC]. However, `preview` stability level support for Jakarta MVC can be added to standard WildFly by including the link:https://github.com/wildfly-extras/mvc-krazo-feature-pack/blob/main/README.md[`wildfly-mvc-krazo-feature-pack`] Galleon feature pack in your server provisioning configuration.
* The Hibernate ORM integration used by the link:Developer_Guide{outfilesuffix}#JPA_Reference_Guide[JPA subsystem's] Hibernate Search feature supports using outbox polling as coordination strategy for automatic indexing.
* The extensions providing the legacy subsystems 'cmp', 'config-admin', 'jacorb', 'jaxr', 'jsr-77', 'messaging' (HornetQ based),
'security' (not 'elytron'), and 'web' (not 'undertow') are removed. These were only used for domain mode to allow a Domain Controller to control
Expand Down
Expand Up @@ -15,6 +15,7 @@ element in the configuration
[source,xml,options="nowrap"]
----
<subsystem xmlns="urn:jboss:domain:jdr:1.0"/>
<subsystem xmlns="urn:jboss:domain:mvc-krazo:1.0"/>
<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
<subsystem xmlns="urn:jboss:domain:sar:1.0"/>
----
Expand All @@ -27,14 +28,16 @@ The presence of each of these turns on a piece of functionality:

|jdr |Enables the gathering of diagnostic data for use in remote
analysis of error conditions. Although the data is in a simple format
and could be useful to anyone, primarily useful for JBoss EAP
and could be useful to anyone, it is primarily useful for JBoss EAP
subscribers who would provide the data to Red Hat when requesting
support
support.

|mvc-krazo| Provides support for use of Jakarta MVC in deployments. Currently only provided in WildFly Preview, although `preview` stability level support can be added to standard WildFly by including the link:https://github.com/wildfly-extras/mvc-krazo-feature-pack/blob/main/README.md[`wildfly-mvc-krazo-feature-pack`] Galleon feature pack in your server provisioning configuration.

|pojo |Enables the deployment of applications containing JBoss
Microcontainer services, as supported by previous versions of JBoss
Application Server
Application Server.

|sar |Enables the deployment of .SAR archives containing MBean services,
as supported by previous versions of JBoss Application Server
as supported by previous versions of JBoss Application Server.
|=======================================================================
7 changes: 7 additions & 0 deletions docs/src/main/asciidoc/_galleon/Galleon_layers.adoc
Expand Up @@ -463,6 +463,13 @@ link:#gal.opentelemetry[opentelemetry]
|
link:#gal.web-server[web-server] +

|[[gal.mvc-krazo]]mvc-krazo
|Support for Jakarta MVC (_WildFly Preview only unless the link:https://github.com/wildfly-extras/mvc-krazo-feature-pack/blob/main/README.md[`wildfly-mvc-krazo-feature-pack`] is used_)
|
link:#gal.bean-validation[bean-validation] +
link:#gal.cdi[cdi] +
link:#gal.jaxrs-core[jaxrs-core] +

|[[gal.naming]]naming
|Support for JNDI.
|
Expand Down
1 change: 1 addition & 0 deletions pom.xml
Expand Up @@ -542,6 +542,7 @@
<version.org.reactivestreams>1.0.4</version.org.reactivestreams>
<version.org.wildfly.core>23.0.0.Beta4</version.org.wildfly.core>
<version.org.wildfly.http-client>2.0.6.Final</version.org.wildfly.http-client>
<preview.version.org.wildfly.mvc.krazo>0.8.0.Final</preview.version.org.wildfly.mvc.krazo>
<version.org.wildfly.naming-client>2.0.1.Final</version.org.wildfly.naming-client>
<version.org.wildfly.security.elytron-mp>2.0.0.Final</version.org.wildfly.security.elytron-mp>
<version.org.wildfly.transaction.client>3.0.3.Final</version.org.wildfly.transaction.client>
Expand Down
39 changes: 37 additions & 2 deletions preview/feature-pack/pom.xml
Expand Up @@ -81,11 +81,16 @@
<artifactId>wildfly-core-feature-pack-ee-10-api</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.wildfly</groupId>
<artifactId>mvc-krazo-galleon-shared</artifactId>
<type>zip</type>
</artifactItem>
</artifactItems>
<!-- The feature pack build seems to ignore such things anyway, but to be
robust exclude artifact metadata content -->
<excludes>**/pom.xml,META-INF,META-INF/**</excludes>
<outputDirectory>${basedir}/target/unpacked-wildfly-core-galleon-resources</outputDirectory>
<outputDirectory>${basedir}/target/unpacked-dependency-galleon-resources</outputDirectory>
</configuration>
</execution>
</executions>
Expand All @@ -105,7 +110,29 @@
<escapeString>\</escapeString>
<resources>
<resource>
<directory>${basedir}/target/unpacked-wildfly-core-galleon-resources</directory>
<directory>${basedir}/target/unpacked-dependency-galleon-resources</directory>
<excludes>
<!-- We handle system/add-ons separately -->
<exclude>modules/system/add-ons/mvc-krazo/**</exclude>
</excludes>
</resource>
</resources>
<overwrite>true</overwrite>
</configuration>
</execution>
<execution>
<!-- The mvc-krazo FP puts things in system/add-ons but for us they are in system/layers/base -->
<id>copy-unpacked-module-addons-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/resources/modules/system/layers/base</outputDirectory>
<escapeString>\</escapeString>
<resources>
<resource>
<directory>${basedir}/target/unpacked-dependency-galleon-resources/modules/system/add-ons/mvc-krazo</directory>
</resource>
</resources>
<overwrite>true</overwrite>
Expand Down Expand Up @@ -314,6 +341,13 @@
<type>pom</type>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.wildfly</groupId>
<artifactId>mvc-krazo-galleon-shared</artifactId>
<type>pom</type>
<scope>provided</scope>
</dependency>
</dependencies>

<profiles>
Expand Down Expand Up @@ -378,6 +412,7 @@
<exclude>${ee.maven.groupId}:wildfly-ee-feature-pack-galleon-shared</exclude>
<exclude>${full.maven.groupId}:wildfly-feature-pack-galleon-shared</exclude>
<exclude>${ee.maven.groupId}:wildfly-preview-feature-pack-galleon-local</exclude>
<exclude>org.wildfly:mvc-krazo-galleon-shared</exclude>
</excludes>
</banTransitiveDependencies>
</rules>
Expand Down
2 changes: 2 additions & 0 deletions preview/feature-pack/wildfly-feature-pack-build.xml
Expand Up @@ -87,6 +87,7 @@
<extension>org.wildfly.extension.microprofile.opentracing-smallrye</extension>
<extension>org.wildfly.extension.microprofile.reactive-messaging-smallrye</extension>
<extension>org.wildfly.extension.microprofile.reactive-streams-operators-smallrye</extension>
<extension>org.wildfly.extension.mvc-krazo</extension>
<extension>org.wildfly.extension.opentelemetry</extension>
<extension>org.wildfly.extension.request-controller</extension>
<extension>org.wildfly.extension.rts</extension>
Expand Down Expand Up @@ -139,6 +140,7 @@
<extension>org.wildfly.extension.microprofile.opentracing-smallrye</extension>
<extension>org.wildfly.extension.microprofile.reactive-messaging-smallrye</extension>
<extension>org.wildfly.extension.microprofile.reactive-streams-operators-smallrye</extension>
<extension>org.wildfly.extension.mvc-krazo</extension>
<extension>org.wildfly.extension.opentelemetry</extension>
<extension>org.wildfly.extension.request-controller</extension>
<extension>org.wildfly.extension.rts</extension>
Expand Down
Expand Up @@ -10,30 +10,48 @@
<param name="host-exclude" value="WildFly23.0"/>
<param name="host-release" value="WildFly23.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.elytron-oidc-client&quot;,&quot;org.wildfly.extension.opentelemetry&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;]"/>
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.elytron-oidc-client&quot;,&quot;org.wildfly.extension.opentelemetry&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;,&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
<feature spec="domain.host-exclude">
<param name="host-exclude" value="WildFly24.0"/>
<param name="host-release" value="WildFly24.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.elytron-oidc-client&quot;,&quot;org.wildfly.extension.opentelemetry&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;]"/>
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.elytron-oidc-client&quot;,&quot;org.wildfly.extension.opentelemetry&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;,&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
<feature spec="domain.host-exclude">
<param name="host-exclude" value="WildFly25.0"/>
<param name="host-release" value="WildFly25.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;]"/>
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;,&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
<feature spec="domain.host-exclude">
<param name="host-exclude" value="WildFly26.0"/>
<param name="host-release" value="WildFly26.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;]"/>
value="[&quot;org.wildfly.extension.clustering.ejb&quot;,&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;,&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
<feature spec="domain.host-exclude">
<param name="host-exclude" value="WildFly27.0"/>
<param name="host-release" value="WildFly27.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;]"/>
value="[&quot;org.wildfly.extension.micrometer&quot;,&quot;org.wildfly.extension.microprofile.lra-participant&quot;,&quot;org.wildfly.extension.microprofile.lra-coordinator&quot;,&quot;org.wildfly.extension.microprofile.telemetry&quot;,&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
<feature spec="domain.host-exclude">
<param name="host-exclude" value="WildFly28.0"/>
<param name="host-release" value="WildFly28.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
<feature spec="domain.host-exclude">
<param name="host-exclude" value="WildFly29.0"/>
<param name="host-release" value="WildFly29.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
<feature spec="domain.host-exclude">
<param name="host-exclude" value="WildFly30.0"/>
<param name="host-release" value="WildFly30.0"/>
<param name="excluded-extensions"
value="[&quot;org.wildfly.extension.mvc-krazo&quot;]"/>
</feature>
</feature-group-spec>
Expand Up @@ -252,6 +252,7 @@ private static List<String> getCurrentRemovedExtensions() {
// to compute on which WildFly Preview was added such a new extension and track the Host Exclusions between
// different WildFly Preview releases.
private final Set<String> previewExtensions = new HashSet<>(Arrays.asList(
"org.wildfly.extension.mvc-krazo"
));

ExtensionConf(String name, ExtensionConf parent, boolean supported) {
Expand Down

0 comments on commit b93ac20

Please sign in to comment.