Friday, April 09, 2010

JBoss Web 3.0.0 Beta 2 Released

Building on JBoss Web Beta1, this new release focuses on integration refactorings with JBoss AS, as well as trimming down the configuration profile used to focus on the standalone Servlet and JSP functionality. As a result, the download sizes and startup times are significantly reduced over Beta1, while allowing easily scaling up to JBoss AS when needed.

Looking forward to future releases, integration of EE 6 naming as well as annotation processing optimizations are planned.

As with Beta1, this release is Servlet 3.0 and JSP 2.2 compliant.

JBoss Web downloads page: http://www.jboss.org/jbossweb/downloads/jboss-web/

Wednesday, February 17, 2010

JBoss AS 6.0.0 M2 Released

This release is significant for web as it moves off the AS 5 development branch and now supports Servlet 3.0. As I have listed in the previous entries on JBoss Web 3, there is more than simply this new API that has been added.

One of the main refactorings has been around the integration of the JSP container. Although not the most trendy EE technology, JSP is still used in many applications, and its integration was a big issue. The main difficulty is that tag library descriptors (TLD) processing is serious business (possibly the most convoluted item in the entire EE, actually), where Jasper (the JSP container in Tomcat and JBoss Web) would end up doing its own parsing. Very hackish and fragile code too ... As the Servlet container also had to be aware of TLDs, this meant duplicating parsing. So a lot of work went into factoring this out of Jasper, and moving off all TLD processing to JBoss Metadata and AS deployers, and replacing Jasper's code with usage of metadata objects representing the TLDs. The end result is that, in addition to a massive speed improvement over AS 5 (for the first JSP compilation in a webapp), TLDs are now fully configurable using AS deployers. Pretty powerful.

Another work area has been around connectors, with the addition of async support in Servlet 3. Rather than adding a new code path to support it, I chose to simply take advantage of the HttpEvent API that was introduced in JBoss Web 2.1. Of course, there was a problem for the connectors which did not support events. So I separated the event functionality in two parts: the part that required polling and non blocking IO (which was not needed to implement Servlet 3's async), and the rest (suspend, resume and timeout, mostly). All connectors now have support for the later (with APR HTTP also supporting the former). Pretty painless overall. Except the dispatcher logic, but having it look like the other include and forward dispatchers seemed like a maintainable solution.

Last, lots of time went into supporting web.xml modularity, Servlet container initializers, and all the annotation scanning (injections and the new Servlet 3 features). That means lots of scanning. Although this is convenient for developers and library packagers, this also causes a war deployment time impact. To address that, the war deployers support scanning exclusions. Large legacy webapps can be tagged with a jboss-scanning.xml and/or started on demand. We did that for our own admin-console. This can allow keeping war deployment time in line with the web container in AS 5, although as users will need to do some homework (given the default is to be EE compliant), some will see apparent regressions here.

A lot of work remains for AS M3 and beyond, including extracting a JBoss Web standalone packaging which makes sense in terms of size and feature set.

For the general AS 6.0.0 M2 release announcement, see Brian's blog entry.

Wednesday, January 06, 2010

JBoss Web passes standalone Servlet 3.0 TCK

The JBoss Web team is happy to report that the standalone TCKs for Servlet 3.0, JSP 2.2 and EL 2.2 now pass on JBoss Web 3.0.0 Beta 1.

JBoss Web downloads page: http://www.jboss.org/jbossweb/downloads/jboss-web/

Friday, December 18, 2009

JBoss Web 3.0.0 Beta 1 Released

The first beta release leading to JBoss Web 3.0 is now out. This release provides support for Servlet 3.0, JSP 2.2 and EL 1.2. Departing from the standalone packaging used in JBoss Web 2.x, JBoss Web 3.0 is based on JBoss AS, and also serves as a preview of the web capabilities that will be included in JBoss AS 6.0.

Major changes include:
- Jasper now integrates with JBoss VDF, for much faster JSP initialization
- Servlet 3.0 support: async, pluggability, annotations, servlet container initializer, new APIs, overlays
- JSP 2.2 support
- Expression Lanaguage 1.2 support
- Implement Servlet 3.0 async functionality on top of JBoss Web event mode
- Add IO-less event mode to all connectors
- Rebased commons fileupload
- Lots of other fixes and improvements

Work will continue in future builds to optimize the packaging, focusing releases on Servlet & JSP, and produce corresponding documentation.

Downloads page: http://www.jboss.org/jbossweb/downloads/jboss-web/

Tuesday, February 17, 2009

JBoss Web 2.1.2 GA Released

A new minor release of JBoss Web is now available, and will be integrated in the upcoming JBoss AS 5.0.1. In addition to many bugfixes, this release extends functionality of the URL rewrite valve.

Downloads page: http://www.jboss.org/jbossweb/downloads/jboss-web/

Wednesday, November 19, 2008

JBoss Web 2.1.1 GA Released

JBoss Web 2.1.1 GA is now available. Built on Apache Tomcat 6.0.x, JBoss
Web 2.1 is a standalone web container which includes advanced features:
- Native libraries leveraging Apache APR and OpenSSL for optimalperformance and scalability
- Highly flexible URL rewriting module
- Advanced event driven Servlet API, including non blocking IO, which greatly expands on the Apache Tomcat 6.0 Comet API
- Comet support using Apache Tomcat Bayeux API
- NIO optimized character IO
- PHP support
- mod_cluster support (see the mod_cluster project at jboss.org)

JBoss Web 2.1.1 GA is the web container embedded inside JBoss AS 5.

Downloads page: http://www.jboss.org/jbossweb/downloads/jboss-web/