Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-2031

Jetty Decorator use is wrong (documentation and code)



      In reference to ..

      That doesn't do what you think it does.
      Since you are calling Set on serverClasses with an array you are overwriting all of the previous serverClasses entries with your entry.
      And since your entry starts with a "-" (negation), you essentially wind up with no serverClasses entries.
      Which basically removes all of the WebApp ClassLoader isolation. (a bad thing)

      In Jetty 8, there were no options for "append" or "prepend" of the serverClasses, so you would essentially have to copy/paste the entries into a new list with your entry at the top.

      In Jetty 9.0 thru 9.2 you can prepend the list, however your single entry isn't enough.

      {{ <!-- relax the classloader to allow weld to see jetty server and servlet classes -->
      <Call name="prependServerClass">
      <Call name="prependServerClass">

      This would be the minimum feature set to support to access the ServletContextHandler$Decorator

      But even this is too much to expose, so Jetty 9.3 made the exposure even easier, but it will require code changes in Weld to support properly.

      First, the org.eclipse.jetty.servlet.ServletContextHandler$Decorator has been deprecated.

      It has been replaced with org.eclipse.jetty.util.Decorator

      To add/remove Decorators, you use the org.eclipse.jetty.util.DecoratedObjectFactory accessed via a ServletContext.getAttribute(DecoratedObjectFactory.ATTR)

        Gliffy Diagrams


            Issue Links



                • Assignee:
                  tremes Tomas Remes
                  joakime Joakim Erdfelt
                • Votes:
                  0 Vote for this issue
                  4 Start watching this issue


                  • Created: