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

Allow to change RESTEasy settings via CLI

XMLWordPrintable

      Many RESTEasy properties can be set in web.xml. CLI should be able to show values of these properties per each deployment by this command:

      /deployment=${NAME_OF_DEPLOYMENT}/subsystem=jaxrs:read-resource
      

      CLI should be able to set values of this properties per each deployment:

      /deployment=${NAME_OF_DEPLOYMENT}/subsystem=jaxrs:write-attribute(name=resteasy.use.builtin.providers,value=false)
      

      CLI should be able to specify values of this attributes globally for all deployments (global settings override deployment settings):

      /subsystem=jaxrs:write-attribute(name=resteasy.media.type.mappings,value="html : text/html, txt : text/plain")
      

      We should consider which properties should be available via CLI.


      Default providers, interceptors, etc. are set in many javax.ws.rs.ext.Providers files in RESTEasy sources:

      ./providers/jackson2/src/main/resources/META-INF/services/javax.ws.rs.ext.Providers
      ./providers/yaml/src/main/resources/META-INF/services/javax.ws.rs.ext.Providers
      ./resteasy-jaxrs/src/main/resources/META-INF/services/javax.ws.rs.ext.Providers
      ...
      

      CLI shoud allow to add other providers, interceptors, etc., or disable some in global level for all deployments. CLI should allow to add or disable it for specific deployment. Disabling should have higher priority then allowing. Global settings override deployment settings.

      Proposal for CLI attributes (list-add is standard CLI function) - examples:

      /subsystem=jaxrs:list-add(name=disabled-providers,value=org.jboss.resteasy.plugins.providers.DataSourceProvider)
      /subsystem=jaxrs:list-add(name=allowed-providers,value=org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor)
      /deployment=${NAME_OF_DEPLOYMENT}/subsystem=jaxrs:list-add(name=disabled-providers,value=org.jboss.resteasy.plugins.providers.DataSourceProvider)
      /deployment=${NAME_OF_DEPLOYMENT}/subsystem=jaxrs:list-add(name=allowed-providers,value=org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor)
      

      Example without this RFE:
      Let's say that server admin needs to disable DataSourceProvider for all deployments on server. Now, AFAIK, he needs to:

      • set "resteasy.use.builtin.providers" property in web.xml of all deployments to "false"
        • It disable all default providers.
      • explicitly set providers used in each deployment by "resteasy.providers" property in web.xml of all deployments

      These steps are really uncomfortable, server admin needs to manually update all deployments in server

            rsigal@redhat.com Ronald Sigal
            mkopecky@redhat.com Marek Kopecky
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: