Hi,

 

I've done some work on injection into servlets and filters for Jetty 6. Here's what I've come up with so far – the patch (to be applied to weld/servlet/trunk) is attached; I'll also attach it to the Jira issue (https://jira.jboss.org/jira/browse/WELDX-23).

 

This includes injection into Servlets and Filters, but not Listeners. It adds a sub-module weld-jetty-support to the weld-servlet module and changes some stuff in the weld-servlet-int module. To use it you need to:

- add weld-jetty-support.jar to JETTY_HOME/lib

- package the new weld-servlet.jar with your war/WEB-INF/lib (as normally)

- deploy your web app into Jetty

- change the attached myapp-context.xml to refer to your web app and deploy it into JETTY_HOME/contexts

 

Here are some open issues that remain and need some discussion. Which of these should I work on first?

 

1.      Injection into Listeners. As far as I could see, this isn't yet supported even in Tomcat? I've done some work on this for Jetty 6 (not yet included in the attached patch) and I think it can be done (using javassist to add the injection code into the first lifecycle method called on the listener).

2.      I don't like the fact that you need to deploy two files into Jetty, the war and the contexts/*.xml, but I don't think there's another way since the jetty example for using annotation injection does the same.

3.      I haven't provided any tests for Jetty integration. There is a jboss-test-harness-tomcat but nothing similar for Jetty. Maybe I could create a jboss-test-harness-jetty and use it to create Weld-Jetty integration tests.

4.      This works for Jetty 6; I haven't tried Jetty 7.

5.      I didn't do for Jetty anything similar to JspInitialization (supposed to replace the el.ExpressionFactory) in tomcat-support; how is this used?

6.      Servlet injection doesn't work in Tomcat 7 (https://jira.jboss.org/jira/browse/WELDX-45); I think I should be able to fix this easily now.

 

Regards,

Matija