Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-17598

The jaxrs layer should not result in MicroProfile REST Client or Config provisioning


      For full context, please see the upstream discussion at https://wildfly.zulipchat.com/#narrow/stream/174184-wildfly-developers/topic/MP.20Config.20from.20jaxrs.20layer

      The tl;dr; of this is if you provision the 'jaxrs' or 'jaxrs-server' layers using the 'wildfly' feature pack you get the following items, while if you use the 'wildfly-ee' feature pack you don't:

      1) The 'org.jboss.resteasy.resteasy-client-microprofile' module and the jars included therein.
      2) The inclusion of the MP Config extension and subsystem in your standalone.xml, plus inclusion of the modules/artifacts needed to support it.

      Neither of these fit the intended definition of those layers, which are about server-side Jakarta RESTFul Web Services support. Using MP RC as a client running inside the server is the purpose of the 'microprofile-rest-client' layer. The fact that MP Config also gets brought in is a side effect of the dependency on 'microprofile-rest-client'.

      We will fix this in the 'jaxrs' layer. Changes to the 'jaxrs-server' layer, if any, will be handled via a separate JIRA.

      The problem noted above isn't good for a few reasons:

      A) Different layer definitions between wildfly-ee and wildfly aren't great, just from a conceptual cleanness and understandability POV. They may exist in other cases (e.g. cloud-server), but when they do the difference should be clearly intentional, which was not the case here.

      B) The 'jaxrs' and 'jaxrs-server' layers were not intended to include MP Config, and having it there does not fit with their purpose.

      C) Having extraneous things in a layer makes it difficult properly use that layer to handle other use cases; e.g. the 'jaxrs' layer is a key part of the planned core-profile-server layer but having MP Config in it interferes with that use.

      Proposed fix is to remove the override of the 'jaxrs' layer in the 'wildfly' feature pack, thus eliminating the tie to MP specs, and allowing jaxrs to be used as part of a core-profile-server layer. At the same time an optional dependency on the microprofile-rest-client layer will be added to an override of the jaxrs-server layer in the 'wildfly' feature pack. (Removing that optional jaxrs-server dependency would be handled via separate JIRA if that's what we choose to do.)

            jperkins-rhn James Perkins
            bstansbe@redhat.com Brian Stansberry
            0 Vote for this issue
            2 Start watching this issue