> the web DD writer and DConfigBeans since it looks like we might actually
> be able to deploy web apps in Jetty (is that right?).
The "proper" (as opposed to the temporary Jetty integration) webapp deployment mechanism is available now in it's early stage. An integration with this mechanism for the Jetty web container is also available.
To try it:
1. stop geronimo
2. remove the target/geronimo-DEV/deploy/jetty/jetty-service.xml file and replace it with the modules/web/src/dev-jetty-service.xml file
3. start geronimo
You should now be able to deploy packed wars and exploded wars via the normal geronimo deployment mechanism (ie dropping them in the target/geronimo-DEV/deploy directory). At the moment, wars containing uncompiled JSPs won't work, as an enhancement to Jetty is needed to extract a suitable JSP compile classpath from the geronimo classloader hierarchy before Jasper will be able to compile on-the-fly. Greg has this patch nearly ready. One caveat - I haven't had a chance to do much testing on this yet beyond dropping the geronimo-web-console.war into the deploy directory, so expect some surprises. Also be aware that there is no JNDI ENC support from the web deployer yet as there isn't (AFAIK) any datasources, ejbs etc yet within geronimo to put into such an ENC.
One valuable feature of the geronimo web deployment mechanism is that web layer objects such as listeners (aka connectors) and access logs are first class Geronimo services. This means that the configuration for them can be expressed in standard Geronimo mbean config syntax, rather than needing extra web-container specific config files. Here is the dev-jetty-service.xml file which contains all you need to get the Jetty container deployed and serving webapps on port 8088:
<components> <!-- ============================================================ --> <!-- Set up the Jetty-specific jars --> <!-- ============================================================ --> <class-space name="geronimo.system:role=ClassSpace,name=Jetty"> <codebase url="file:lib/"> <archive name="*"/> </codebase> <codebase url="file:../../lib/"> <archive name="geronimo-core-DEV.jar"/> <archive name="geronimo-common-DEV.jar"/> </codebase> </class-space>
<!-- ============================================================ -->
<!-- Set up a Jetty container -->
<!-- ============================================================ -->
<mbean code="org.apache.geronimo.web.jetty.JettyWebContainer"
name="jetty:role=WebContainer">
<attribute type="java.net.URI"
name="DefaultWebXmlURI">file:web-defaults.xml</attribute>
</mbean> <!-- ============================================================ -->
<!-- Set up a connector to listen for http requests -->
<!-- ============================================================ -->
<mbean code="org.apache.geronimo.web.jetty.JettyWebConnector"
name="jetty:role=WebConnector, port=8088">
<attribute name="Port">8088</attribute>
<depends name="jetty:role=WebContainer"/>
</mbean>
</components>
On my list for the very near future is: + support for undeploy + support for webdefaults + support for JSR88 required data for webapps + JNDI ENC + parsing of web.xml and geronimo-web.xml deployment descriptors + support for a geronimo web access log service + testing, testing, testing
The longer term: + more testing :-) + support for web apps deployed inside an ear + support for redeploy + support for registering context names with a listener which must be deployed on the container before the listener will accept connections + support for simultaneous deployment of different web containers (eg Jetty and Tomcat in parallel)
I will try to update all this on the Geronimo wiki in the next few days. Just thought as the subject came up, I'd give everyone an update on what is happening in web-app deployment land.
cheers Jan
