From dc69052a3ad95fdad794068126eb2227e066505c Mon Sep 17 00:00:00 2001 From: Kyle Date: Tue, 15 Sep 2015 11:44:07 -0700 Subject: [PATCH] KMAIN-1880/1887 Hatch Installer Create Installer and Uninstaller capability. Signed-off-by: Kyle new files: jetty new files: hatch code modified: buildprocess.txt new file: hatch.nsi new file: license.rtf new file: src/tools/jdk-extract.bat --- README.win | 59 + buildprocess.txt | 12 + hatch.nsi | 182 + license.rtf | Bin 0 -> 206 bytes src/hatch/README | 29 + src/hatch/README.win | 59 + src/hatch/hatch.xml | 161 + src/hatch/jetty/README.TXT | 68 + src/hatch/jetty/VERSION.txt | 8224 ++++++++++++++++++++ src/hatch/jetty/bin/jetty.sh | 597 ++ .../jetty/demo-base/etc/demo-rewrite-rules.xml | 104 + src/hatch/jetty/demo-base/etc/keystore | Bin 0 -> 1416 bytes src/hatch/jetty/demo-base/etc/login.conf | 5 + src/hatch/jetty/demo-base/etc/login.properties | 1 + src/hatch/jetty/demo-base/etc/realm.properties | 21 + src/hatch/jetty/demo-base/etc/test-realm.xml | 24 + .../javax.mail.glassfish-1.4.1.v201005082020.jar | Bin 0 -> 490811 bytes .../ext/test-mock-resources-9.2.13.v20150730.jar | Bin 0 -> 6208 bytes .../ext/test-mock-resources-9.3.3.v20150827.jar | Bin 0 -> 6155 bytes src/hatch/jetty/demo-base/start.d/http.ini | 19 + src/hatch/jetty/demo-base/start.d/https.ini | 11 + src/hatch/jetty/demo-base/start.d/jsp.ini | 14 + src/hatch/jetty/demo-base/start.d/jstl.ini | 8 + src/hatch/jetty/demo-base/start.d/ssl.ini | 29 + src/hatch/jetty/demo-base/start.ini | 82 + src/hatch/jetty/demo-base/webapps/README.TXT | 12 + .../demo-base/webapps/ROOT/images/jetty-header.jpg | Bin 0 -> 103289 bytes .../demo-base/webapps/ROOT/images/webtide_logo.jpg | Bin 0 -> 17678 bytes src/hatch/jetty/demo-base/webapps/ROOT/index.html | 72 + src/hatch/jetty/demo-base/webapps/ROOT/jetty.css | 351 + src/hatch/jetty/demo-base/webapps/async-rest.war | Bin 0 -> 790573 bytes .../jetty/demo-base/webapps/example-moved.xml | 12 + src/hatch/jetty/demo-base/webapps/test-jaas.war | Bin 0 -> 60850 bytes src/hatch/jetty/demo-base/webapps/test-jaas.xml | 25 + src/hatch/jetty/demo-base/webapps/test-jndi.war | Bin 0 -> 63214 bytes src/hatch/jetty/demo-base/webapps/test-jndi.xml | 89 + src/hatch/jetty/demo-base/webapps/test-spec.war | Bin 0 -> 426662 bytes src/hatch/jetty/demo-base/webapps/test-spec.xml | 72 + .../demo-base/webapps/test.d/override-web.xml | 56 + src/hatch/jetty/demo-base/webapps/test.war | Bin 0 -> 881924 bytes src/hatch/jetty/demo-base/webapps/test.xml | 112 + src/hatch/jetty/demo-base/webapps/xref-proxy.war | Bin 0 -> 818418 bytes src/hatch/jetty/etc/README.spnego | 62 + src/hatch/jetty/etc/example-quickstart.xml | 27 + src/hatch/jetty/etc/hawtio.xml | 16 + src/hatch/jetty/etc/home-base-warning.xml | 8 + src/hatch/jetty/etc/jamon.xml | 32 + src/hatch/jetty/etc/jdbcRealm.properties | 72 + src/hatch/jetty/etc/jetty-alpn.xml | 32 + src/hatch/jetty/etc/jetty-annotations.xml | 20 + src/hatch/jetty/etc/jetty-cdi.xml | 19 + src/hatch/jetty/etc/jetty-debug.xml | 23 + src/hatch/jetty/etc/jetty-debuglog.xml | 25 + src/hatch/jetty/etc/jetty-deploy.xml | 62 + src/hatch/jetty/etc/jetty-gzip.xml | 67 + src/hatch/jetty/etc/jetty-http.xml | 47 + src/hatch/jetty/etc/jetty-http2.xml | 26 + src/hatch/jetty/etc/jetty-http2c.xml | 18 + src/hatch/jetty/etc/jetty-https.xml | 53 + src/hatch/jetty/etc/jetty-infinispan.xml | 39 + src/hatch/jetty/etc/jetty-ipaccess.xml | 31 + src/hatch/jetty/etc/jetty-jaas.xml | 17 + src/hatch/jetty/etc/jetty-jdbc-sessions.xml | 34 + src/hatch/jetty/etc/jetty-jmx-remote.xml | 29 + src/hatch/jetty/etc/jetty-jmx.xml | 43 + src/hatch/jetty/etc/jetty-logging.xml | 34 + src/hatch/jetty/etc/jetty-lowresources.xml | 22 + src/hatch/jetty/etc/jetty-monitor.xml | 30 + src/hatch/jetty/etc/jetty-nosql.xml | 19 + src/hatch/jetty/etc/jetty-plus.xml | 26 + src/hatch/jetty/etc/jetty-proxy-protocol-ssl.xml | 10 + src/hatch/jetty/etc/jetty-proxy-protocol.xml | 10 + src/hatch/jetty/etc/jetty-proxy.xml | 35 + src/hatch/jetty/etc/jetty-requestlog.xml | 32 + src/hatch/jetty/etc/jetty-rewrite.xml | 41 + src/hatch/jetty/etc/jetty-setuid.xml | 30 + src/hatch/jetty/etc/jetty-spdy-proxy.xml | 158 + src/hatch/jetty/etc/jetty-spdy.xml | 139 + src/hatch/jetty/etc/jetty-spring.xml | 61 + src/hatch/jetty/etc/jetty-ssl-context.xml | 32 + src/hatch/jetty/etc/jetty-ssl.xml | 43 + src/hatch/jetty/etc/jetty-started.xml | 15 + src/hatch/jetty/etc/jetty-stats.xml | 18 + src/hatch/jetty/etc/jetty-xinetd.xml | 54 + src/hatch/jetty/etc/jetty.conf | 12 + src/hatch/jetty/etc/jetty.xml | 132 + src/hatch/jetty/etc/jminix.xml | 12 + src/hatch/jetty/etc/jolokia.xml | 16 + src/hatch/jetty/etc/keystore | Bin 0 -> 1416 bytes src/hatch/jetty/etc/keystore.pkf | 20 + src/hatch/jetty/etc/krb5.ini | 23 + src/hatch/jetty/etc/protonego-alpn.xml | 19 + src/hatch/jetty/etc/protonego-npn.xml | 21 + src/hatch/jetty/etc/spnego.conf | 19 + src/hatch/jetty/etc/spnego.properties | 1 + src/hatch/jetty/etc/webdefault.xml | 534 ++ src/hatch/jetty/lib/annotations/asm-5.0.1.jar | Bin 0 -> 53217 bytes .../jetty/lib/annotations/asm-commons-5.0.1.jar | Bin 0 -> 41718 bytes .../lib/annotations/javax.annotation-api-1.2.jar | Bin 0 -> 26366 bytes ...g.eclipse.jetty.apache-jsp-9.2.13.v20150730.jar | Bin 0 -> 10701 bytes ...rg.eclipse.jetty.apache-jsp-9.3.3.v20150827.jar | Bin 0 -> 10637 bytes ....orbit.org.eclipse.jdt.core-3.8.2.v20130121.jar | Bin 0 -> 1764622 bytes .../org.mortbay.jasper.apache-el-8.0.23.M1.jar | Bin 0 -> 241221 bytes .../org.mortbay.jasper.apache-el-8.0.9.M3.jar | Bin 0 -> 237638 bytes .../org.mortbay.jasper.apache-jsp-8.0.23.M1.jar | Bin 0 -> 955474 bytes .../org.mortbay.jasper.apache-jsp-8.0.9.M3.jar | Bin 0 -> 955429 bytes ....apache.taglibs.taglibs-standard-impl-1.2.1.jar | Bin 0 -> 201177 bytes ....apache.taglibs.taglibs-standard-spec-1.2.1.jar | Bin 0 -> 38915 bytes src/hatch/jetty/lib/cdi-core-9.3.3.v20150827.jar | Bin 0 -> 8690 bytes .../jetty/lib/cdi-servlet-9.3.3.v20150827.jar | Bin 0 -> 8698 bytes .../jetty/lib/cdi-websocket-9.3.3.v20150827.jar | Bin 0 -> 17918 bytes src/hatch/jetty/lib/ext/.donotdelete | 0 .../lib/fcgi/fcgi-client-9.2.13.v20150730.jar | Bin 0 -> 77013 bytes .../jetty/lib/fcgi/fcgi-client-9.3.3.v20150827.jar | Bin 0 -> 77482 bytes .../lib/fcgi/fcgi-server-9.2.13.v20150730.jar | Bin 0 -> 22673 bytes .../jetty/lib/fcgi/fcgi-server-9.3.3.v20150827.jar | Bin 0 -> 23905 bytes .../lib/http2/http2-common-9.3.3.v20150827.jar | Bin 0 -> 145484 bytes .../lib/http2/http2-hpack-9.3.3.v20150827.jar | Bin 0 -> 35358 bytes .../lib/http2/http2-server-9.3.3.v20150827.jar | Bin 0 -> 30764 bytes ...x.security.auth.message-1.0.0.v201108011116.jar | Bin 0 -> 40621 bytes .../lib/jetty-alpn-client-9.2.13.v20150730.jar | Bin 0 -> 6409 bytes .../lib/jetty-alpn-server-9.2.13.v20150730.jar | Bin 0 -> 7151 bytes .../lib/jetty-alpn-server-9.3.3.v20150827.jar | Bin 0 -> 7536 bytes .../lib/jetty-annotations-9.2.13.v20150730.jar | Bin 0 -> 80155 bytes .../lib/jetty-annotations-9.3.3.v20150827.jar | Bin 0 -> 79607 bytes src/hatch/jetty/lib/jetty-cdi-9.2.13.v20150730.jar | Bin 0 -> 4709 bytes .../jetty/lib/jetty-client-9.2.13.v20150730.jar | Bin 0 -> 233178 bytes .../jetty/lib/jetty-client-9.3.3.v20150827.jar | Bin 0 -> 234606 bytes .../lib/jetty-continuation-9.2.13.v20150730.jar | Bin 0 -> 15996 bytes .../lib/jetty-continuation-9.3.3.v20150827.jar | Bin 0 -> 15779 bytes .../jetty/lib/jetty-deploy-9.2.13.v20150730.jar | Bin 0 -> 50465 bytes .../jetty/lib/jetty-deploy-9.3.3.v20150827.jar | Bin 0 -> 49967 bytes .../jetty/lib/jetty-http-9.2.13.v20150730.jar | Bin 0 -> 105859 bytes src/hatch/jetty/lib/jetty-http-9.3.3.v20150827.jar | Bin 0 -> 114096 bytes .../jetty/lib/jetty-infinispan-9.3.3.v20150827.jar | Bin 0 -> 22088 bytes src/hatch/jetty/lib/jetty-io-9.2.13.v20150730.jar | Bin 0 -> 108315 bytes src/hatch/jetty/lib/jetty-io-9.3.3.v20150827.jar | Bin 0 -> 105792 bytes .../jetty/lib/jetty-jaas-9.2.13.v20150730.jar | Bin 0 -> 37660 bytes src/hatch/jetty/lib/jetty-jaas-9.3.3.v20150827.jar | Bin 0 -> 37321 bytes .../jetty/lib/jetty-jaspi-9.2.13.v20150730.jar | Bin 0 -> 37775 bytes .../jetty/lib/jetty-jaspi-9.3.3.v20150827.jar | Bin 0 -> 37108 bytes src/hatch/jetty/lib/jetty-jmx-9.2.13.v20150730.jar | Bin 0 -> 22147 bytes src/hatch/jetty/lib/jetty-jmx-9.3.3.v20150827.jar | Bin 0 -> 21771 bytes .../jetty/lib/jetty-jndi-9.2.13.v20150730.jar | Bin 0 -> 41267 bytes src/hatch/jetty/lib/jetty-jndi-9.3.3.v20150827.jar | Bin 0 -> 40921 bytes .../jetty/lib/jetty-nosql-9.3.3.v20150827.jar | Bin 0 -> 27576 bytes .../jetty/lib/jetty-plus-9.2.13.v20150730.jar | Bin 0 -> 54157 bytes src/hatch/jetty/lib/jetty-plus-9.3.3.v20150827.jar | Bin 0 -> 53708 bytes .../jetty/lib/jetty-proxy-9.2.13.v20150730.jar | Bin 0 -> 82026 bytes .../jetty/lib/jetty-proxy-9.3.3.v20150827.jar | Bin 0 -> 80841 bytes .../lib/jetty-quickstart-9.2.13.v20150730.jar | Bin 0 -> 26841 bytes .../jetty/lib/jetty-quickstart-9.3.3.v20150827.jar | Bin 0 -> 27246 bytes .../jetty/lib/jetty-rewrite-9.2.13.v20150730.jar | Bin 0 -> 29916 bytes .../jetty/lib/jetty-rewrite-9.3.3.v20150827.jar | Bin 0 -> 31356 bytes src/hatch/jetty/lib/jetty-schemas-3.1.jar | Bin 0 -> 188164 bytes .../jetty/lib/jetty-security-9.2.13.v20150730.jar | Bin 0 -> 95927 bytes .../jetty/lib/jetty-security-9.3.3.v20150827.jar | Bin 0 -> 91136 bytes .../jetty/lib/jetty-server-9.2.13.v20150730.jar | Bin 0 -> 418791 bytes .../jetty/lib/jetty-server-9.3.3.v20150827.jar | Bin 0 -> 464435 bytes .../jetty/lib/jetty-servlet-9.2.13.v20150730.jar | Bin 0 -> 115670 bytes .../jetty/lib/jetty-servlet-9.3.3.v20150827.jar | Bin 0 -> 113172 bytes .../jetty/lib/jetty-servlets-9.2.13.v20150730.jar | Bin 0 -> 122602 bytes .../jetty/lib/jetty-servlets-9.3.3.v20150827.jar | Bin 0 -> 85076 bytes .../jetty/lib/jetty-util-9.2.13.v20150730.jar | Bin 0 -> 358143 bytes src/hatch/jetty/lib/jetty-util-9.3.3.v20150827.jar | Bin 0 -> 411278 bytes .../jetty/lib/jetty-webapp-9.2.13.v20150730.jar | Bin 0 -> 107866 bytes .../jetty/lib/jetty-webapp-9.3.3.v20150827.jar | Bin 0 -> 108786 bytes src/hatch/jetty/lib/jetty-xml-9.2.13.v20150730.jar | Bin 0 -> 44135 bytes src/hatch/jetty/lib/jetty-xml-9.3.3.v20150827.jar | Bin 0 -> 50301 bytes .../javax.mail.glassfish-1.4.1.v201005082020.jar | Bin 0 -> 490811 bytes .../jetty/lib/jndi/javax.transaction-api-1.2.jar | Bin 0 -> 30724 bytes src/hatch/jetty/lib/jsp/javax.el-3.0.0.jar | Bin 0 -> 224014 bytes .../jetty/lib/jsp/javax.servlet.jsp-2.3.2.jar | Bin 0 -> 547677 bytes .../jetty/lib/jsp/javax.servlet.jsp-api-2.3.1.jar | Bin 0 -> 53239 bytes .../jetty/lib/jsp/javax.servlet.jsp.jstl-1.2.2.jar | Bin 0 -> 405951 bytes .../jetty/lib/jsp/jetty-jsp-9.2.13.v20150730.jar | Bin 0 -> 5324 bytes src/hatch/jetty/lib/jsp/jetty-jsp-jdt-2.3.3.jar | Bin 0 -> 13569 bytes .../jsp/org.eclipse.jdt.core-3.8.2.v20130121.jar | Bin 0 -> 1764622 bytes ....javax.servlet.jsp.jstl-1.2.0.v201105211821.jar | Bin 0 -> 51761 bytes .../lib/monitor/jetty-monitor-9.2.13.v20150730.jar | Bin 0 -> 52224 bytes .../lib/monitor/jetty-monitor-9.3.3.v20150827.jar | Bin 0 -> 51676 bytes src/hatch/jetty/lib/servlet-api-3.1.jar | Bin 0 -> 95806 bytes .../jetty/lib/setuid/jetty-setuid-java-1.0.1.jar | Bin 0 -> 12758 bytes .../jetty/lib/setuid/jetty-setuid-java-1.0.3.jar | Bin 0 -> 13161 bytes src/hatch/jetty/lib/setuid/libsetuid-linux.so | Bin 0 -> 17858 bytes src/hatch/jetty/lib/setuid/libsetuid-osx.so | Bin 0 -> 14388 bytes .../lib/spdy/spdy-client-9.2.13.v20150730.jar | Bin 0 -> 19871 bytes .../jetty/lib/spdy/spdy-core-9.2.13.v20150730.jar | Bin 0 -> 172393 bytes .../lib/spdy/spdy-http-common-9.2.13.v20150730.jar | Bin 0 -> 5956 bytes .../lib/spdy/spdy-http-server-9.2.13.v20150730.jar | Bin 0 -> 85511 bytes .../lib/spdy/spdy-server-9.2.13.v20150730.jar | Bin 0 -> 13188 bytes .../lib/spring/jetty-spring-9.2.13.v20150730.jar | Bin 0 -> 8715 bytes .../lib/spring/jetty-spring-9.3.3.v20150827.jar | Bin 0 -> 8988 bytes ...avax-websocket-client-impl-9.2.13.v20150730.jar | Bin 0 -> 156985 bytes ...javax-websocket-client-impl-9.3.3.v20150827.jar | Bin 0 -> 157303 bytes ...avax-websocket-server-impl-9.2.13.v20150730.jar | Bin 0 -> 37518 bytes ...javax-websocket-server-impl-9.3.3.v20150827.jar | Bin 0 -> 38527 bytes .../lib/websocket/javax.websocket-api-1.0.jar | Bin 0 -> 36611 bytes .../websocket/websocket-api-9.2.13.v20150730.jar | Bin 0 -> 43773 bytes .../websocket/websocket-api-9.3.3.v20150827.jar | Bin 0 -> 45239 bytes .../websocket-client-9.2.13.v20150730.jar | Bin 0 -> 36261 bytes .../websocket/websocket-client-9.3.3.v20150827.jar | Bin 0 -> 36463 bytes .../websocket-common-9.2.13.v20150730.jar | Bin 0 -> 179844 bytes .../websocket/websocket-common-9.3.3.v20150827.jar | Bin 0 -> 186620 bytes .../websocket-server-9.2.13.v20150730.jar | Bin 0 -> 37722 bytes .../websocket/websocket-server-9.3.3.v20150827.jar | Bin 0 -> 38412 bytes .../websocket-servlet-9.2.13.v20150730.jar | Bin 0 -> 18304 bytes .../websocket-servlet-9.3.3.v20150827.jar | Bin 0 -> 18153 bytes src/hatch/jetty/license-eplv10-aslv20.html | 576 ++ src/hatch/jetty/logs/.donotdelete | 0 src/hatch/jetty/modules/.donotdelete | 0 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_05.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_11.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_20.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_25.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_31.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_40.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_45.mod | 8 + .../jetty/modules/alpn-impl/alpn-1.8.0_51.mod | 8 + src/hatch/jetty/modules/alpn.mod | 53 + src/hatch/jetty/modules/annotations.mod | 17 + src/hatch/jetty/modules/apache-jsp.mod | 10 + src/hatch/jetty/modules/apache-jstl.mod | 9 + src/hatch/jetty/modules/cdi.mod | 26 + src/hatch/jetty/modules/client.mod | 6 + src/hatch/jetty/modules/continuation.mod | 6 + src/hatch/jetty/modules/debug.mod | 9 + src/hatch/jetty/modules/debuglog.mod | 25 + src/hatch/jetty/modules/deploy.mod | 21 + src/hatch/jetty/modules/ext.mod | 11 + src/hatch/jetty/modules/fcgi.mod | 15 + src/hatch/jetty/modules/gzip.mod | 23 + src/hatch/jetty/modules/hawtio.mod | 28 + src/hatch/jetty/modules/home-base-warning.mod | 7 + src/hatch/jetty/modules/http.mod | 27 + src/hatch/jetty/modules/http2.mod | 20 + src/hatch/jetty/modules/http2c.mod | 22 + src/hatch/jetty/modules/https.mod | 19 + src/hatch/jetty/modules/infinispan.mod | 33 + src/hatch/jetty/modules/ipaccess.mod | 9 + src/hatch/jetty/modules/jaas.mod | 16 + src/hatch/jetty/modules/jamon.mod | 30 + src/hatch/jetty/modules/jaspi.mod | 10 + src/hatch/jetty/modules/jdbc-sessions.mod | 27 + src/hatch/jetty/modules/jminix.mod | 41 + src/hatch/jetty/modules/jmx-remote.mod | 18 + src/hatch/jetty/modules/jmx.mod | 13 + src/hatch/jetty/modules/jndi.mod | 11 + src/hatch/jetty/modules/jolokia.mod | 19 + src/hatch/jetty/modules/jsp-impl/apache-jsp.mod | 10 + src/hatch/jetty/modules/jsp-impl/apache-jstl.mod | 8 + src/hatch/jetty/modules/jsp-impl/glassfish-jsp.mod | 8 + .../jetty/modules/jsp-impl/glassfish-jstl.mod | 6 + src/hatch/jetty/modules/jsp.mod | 21 + src/hatch/jetty/modules/jstl.mod | 14 + src/hatch/jetty/modules/jvm.mod | 23 + src/hatch/jetty/modules/logging.mod | 31 + src/hatch/jetty/modules/lowresources.mod | 18 + src/hatch/jetty/modules/monitor.mod | 13 + src/hatch/jetty/modules/nosql.mod | 31 + src/hatch/jetty/modules/plus.mod | 15 + .../jetty/modules/protonego-impl/alpn-1.7.0_40.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_45.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_51.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_55.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_60.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_65.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_67.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_71.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_72.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_75.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_76.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_79.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.7.0_80.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_05.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_11.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_20.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_25.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_31.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_40.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_45.mod | 8 + .../jetty/modules/protonego-impl/alpn-1.8.0_51.mod | 8 + src/hatch/jetty/modules/protonego-impl/alpn.mod | 42 + .../jetty/modules/protonego-impl/npn-1.7.0_04.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_05.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_06.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_07.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_09.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_10.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_11.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_13.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_15.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_17.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_21.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_25.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_40.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_45.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_51.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_55.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_60.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_65.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_67.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_71.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_72.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_75.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_76.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_79.mod | 8 + .../jetty/modules/protonego-impl/npn-1.7.0_80.mod | 8 + src/hatch/jetty/modules/protonego-impl/npn.mod | 37 + src/hatch/jetty/modules/protonego.mod | 24 + src/hatch/jetty/modules/proxy-protocol-ssl.mod | 9 + src/hatch/jetty/modules/proxy-protocol.mod | 9 + src/hatch/jetty/modules/proxy.mod | 22 + src/hatch/jetty/modules/quickstart.mod | 12 + src/hatch/jetty/modules/requestlog.mod | 30 + src/hatch/jetty/modules/resources.mod | 10 + src/hatch/jetty/modules/rewrite.mod | 12 + src/hatch/jetty/modules/security.mod | 9 + src/hatch/jetty/modules/server.mod | 49 + src/hatch/jetty/modules/servlet.mod | 9 + src/hatch/jetty/modules/servlets.mod | 10 + src/hatch/jetty/modules/setuid.mod | 19 + src/hatch/jetty/modules/spdy.mod | 26 + src/hatch/jetty/modules/spring.mod | 16 + src/hatch/jetty/modules/ssl.mod | 40 + src/hatch/jetty/modules/stats.mod | 9 + src/hatch/jetty/modules/webapp.mod | 10 + src/hatch/jetty/modules/websocket.mod | 12 + src/hatch/jetty/modules/xinetd.mod | 17 + src/hatch/jetty/notice.html | 111 + src/hatch/jetty/resources/log4j.properties | 9 + src/hatch/jetty/start.ini | 117 + src/hatch/jetty/start.jar | Bin 0 -> 109440 bytes src/hatch/jetty/webapps/README.TXT | 33 + src/hatch/lib/jetty-util-ajax-9.2.13.v20150730.jar | Bin 0 -> 38661 bytes src/hatch/lib/org/evergreen_ils/hatch/FileIO.class | Bin 0 -> 5144 bytes .../lib/org/evergreen_ils/hatch/Hatch$1.class | Bin 0 -> 1034 bytes .../lib/org/evergreen_ils/hatch/Hatch$2$1.class | Bin 0 -> 801 bytes .../lib/org/evergreen_ils/hatch/Hatch$2.class | Bin 0 -> 1360 bytes .../evergreen_ils/hatch/Hatch$BrowserView.class | Bin 0 -> 816 bytes .../hatch/Hatch$MsgListenService$1.class | Bin 0 -> 1440 bytes .../hatch/Hatch$MsgListenService.class | Bin 0 -> 863 bytes src/hatch/lib/org/evergreen_ils/hatch/Hatch.class | Bin 0 -> 5238 bytes .../hatch/HatchWebSocketHandler.class | Bin 0 -> 7124 bytes .../hatch/HatchWebSocketServlet.class | Bin 0 -> 742 bytes .../lib/org/evergreen_ils/hatch/PrintManager.class | Bin 0 -> 10854 bytes src/hatch/run-win.bat | 6 + src/hatch/run.sh | 15 + src/hatch/src/org/evergreen_ils/hatch/FileIO.java | 288 + src/hatch/src/org/evergreen_ils/hatch/Hatch.java | 250 + .../evergreen_ils/hatch/HatchWebSocketHandler.java | 314 + .../evergreen_ils/hatch/HatchWebSocketServlet.java | 40 + .../src/org/evergreen_ils/hatch/PrintManager.java | 423 + src/tools/jdk-extract.bat | 24 + 356 files changed, 16796 insertions(+) create mode 100644 README.win create mode 100644 hatch.nsi create mode 100644 license.rtf create mode 100644 src/hatch/README create mode 100644 src/hatch/README.win create mode 100644 src/hatch/hatch.xml create mode 100644 src/hatch/jetty/README.TXT create mode 100644 src/hatch/jetty/VERSION.txt create mode 100644 src/hatch/jetty/bin/jetty.sh create mode 100644 src/hatch/jetty/demo-base/etc/demo-rewrite-rules.xml create mode 100644 src/hatch/jetty/demo-base/etc/keystore create mode 100644 src/hatch/jetty/demo-base/etc/login.conf create mode 100644 src/hatch/jetty/demo-base/etc/login.properties create mode 100644 src/hatch/jetty/demo-base/etc/realm.properties create mode 100644 src/hatch/jetty/demo-base/etc/test-realm.xml create mode 100644 src/hatch/jetty/demo-base/lib/ext/javax.mail.glassfish-1.4.1.v201005082020.jar create mode 100644 src/hatch/jetty/demo-base/lib/ext/test-mock-resources-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/demo-base/lib/ext/test-mock-resources-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/demo-base/start.d/http.ini create mode 100644 src/hatch/jetty/demo-base/start.d/https.ini create mode 100644 src/hatch/jetty/demo-base/start.d/jsp.ini create mode 100644 src/hatch/jetty/demo-base/start.d/jstl.ini create mode 100644 src/hatch/jetty/demo-base/start.d/ssl.ini create mode 100644 src/hatch/jetty/demo-base/start.ini create mode 100644 src/hatch/jetty/demo-base/webapps/README.TXT create mode 100644 src/hatch/jetty/demo-base/webapps/ROOT/images/jetty-header.jpg create mode 100644 src/hatch/jetty/demo-base/webapps/ROOT/images/webtide_logo.jpg create mode 100644 src/hatch/jetty/demo-base/webapps/ROOT/index.html create mode 100644 src/hatch/jetty/demo-base/webapps/ROOT/jetty.css create mode 100644 src/hatch/jetty/demo-base/webapps/async-rest.war create mode 100644 src/hatch/jetty/demo-base/webapps/example-moved.xml create mode 100644 src/hatch/jetty/demo-base/webapps/test-jaas.war create mode 100644 src/hatch/jetty/demo-base/webapps/test-jaas.xml create mode 100644 src/hatch/jetty/demo-base/webapps/test-jndi.war create mode 100644 src/hatch/jetty/demo-base/webapps/test-jndi.xml create mode 100644 src/hatch/jetty/demo-base/webapps/test-spec.war create mode 100644 src/hatch/jetty/demo-base/webapps/test-spec.xml create mode 100644 src/hatch/jetty/demo-base/webapps/test.d/override-web.xml create mode 100644 src/hatch/jetty/demo-base/webapps/test.war create mode 100644 src/hatch/jetty/demo-base/webapps/test.xml create mode 100644 src/hatch/jetty/demo-base/webapps/xref-proxy.war create mode 100644 src/hatch/jetty/etc/README.spnego create mode 100644 src/hatch/jetty/etc/example-quickstart.xml create mode 100644 src/hatch/jetty/etc/hawtio.xml create mode 100644 src/hatch/jetty/etc/home-base-warning.xml create mode 100644 src/hatch/jetty/etc/jamon.xml create mode 100644 src/hatch/jetty/etc/jdbcRealm.properties create mode 100644 src/hatch/jetty/etc/jetty-alpn.xml create mode 100644 src/hatch/jetty/etc/jetty-annotations.xml create mode 100644 src/hatch/jetty/etc/jetty-cdi.xml create mode 100644 src/hatch/jetty/etc/jetty-debug.xml create mode 100644 src/hatch/jetty/etc/jetty-debuglog.xml create mode 100644 src/hatch/jetty/etc/jetty-deploy.xml create mode 100644 src/hatch/jetty/etc/jetty-gzip.xml create mode 100644 src/hatch/jetty/etc/jetty-http.xml create mode 100644 src/hatch/jetty/etc/jetty-http2.xml create mode 100644 src/hatch/jetty/etc/jetty-http2c.xml create mode 100644 src/hatch/jetty/etc/jetty-https.xml create mode 100644 src/hatch/jetty/etc/jetty-infinispan.xml create mode 100644 src/hatch/jetty/etc/jetty-ipaccess.xml create mode 100644 src/hatch/jetty/etc/jetty-jaas.xml create mode 100644 src/hatch/jetty/etc/jetty-jdbc-sessions.xml create mode 100644 src/hatch/jetty/etc/jetty-jmx-remote.xml create mode 100644 src/hatch/jetty/etc/jetty-jmx.xml create mode 100644 src/hatch/jetty/etc/jetty-logging.xml create mode 100644 src/hatch/jetty/etc/jetty-lowresources.xml create mode 100644 src/hatch/jetty/etc/jetty-monitor.xml create mode 100644 src/hatch/jetty/etc/jetty-nosql.xml create mode 100644 src/hatch/jetty/etc/jetty-plus.xml create mode 100644 src/hatch/jetty/etc/jetty-proxy-protocol-ssl.xml create mode 100644 src/hatch/jetty/etc/jetty-proxy-protocol.xml create mode 100644 src/hatch/jetty/etc/jetty-proxy.xml create mode 100644 src/hatch/jetty/etc/jetty-requestlog.xml create mode 100644 src/hatch/jetty/etc/jetty-rewrite.xml create mode 100644 src/hatch/jetty/etc/jetty-setuid.xml create mode 100644 src/hatch/jetty/etc/jetty-spdy-proxy.xml create mode 100644 src/hatch/jetty/etc/jetty-spdy.xml create mode 100644 src/hatch/jetty/etc/jetty-spring.xml create mode 100644 src/hatch/jetty/etc/jetty-ssl-context.xml create mode 100644 src/hatch/jetty/etc/jetty-ssl.xml create mode 100644 src/hatch/jetty/etc/jetty-started.xml create mode 100644 src/hatch/jetty/etc/jetty-stats.xml create mode 100644 src/hatch/jetty/etc/jetty-xinetd.xml create mode 100644 src/hatch/jetty/etc/jetty.conf create mode 100644 src/hatch/jetty/etc/jetty.xml create mode 100644 src/hatch/jetty/etc/jminix.xml create mode 100644 src/hatch/jetty/etc/jolokia.xml create mode 100644 src/hatch/jetty/etc/keystore create mode 100644 src/hatch/jetty/etc/keystore.pkf create mode 100644 src/hatch/jetty/etc/krb5.ini create mode 100644 src/hatch/jetty/etc/protonego-alpn.xml create mode 100644 src/hatch/jetty/etc/protonego-npn.xml create mode 100644 src/hatch/jetty/etc/spnego.conf create mode 100644 src/hatch/jetty/etc/spnego.properties create mode 100644 src/hatch/jetty/etc/webdefault.xml create mode 100644 src/hatch/jetty/lib/annotations/asm-5.0.1.jar create mode 100644 src/hatch/jetty/lib/annotations/asm-commons-5.0.1.jar create mode 100644 src/hatch/jetty/lib/annotations/javax.annotation-api-1.2.jar create mode 100644 src/hatch/jetty/lib/apache-jsp/org.eclipse.jetty.apache-jsp-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/apache-jsp/org.eclipse.jetty.apache-jsp-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/apache-jsp/org.eclipse.jetty.orbit.org.eclipse.jdt.core-3.8.2.v20130121.jar create mode 100644 src/hatch/jetty/lib/apache-jsp/org.mortbay.jasper.apache-el-8.0.23.M1.jar create mode 100644 src/hatch/jetty/lib/apache-jsp/org.mortbay.jasper.apache-el-8.0.9.M3.jar create mode 100644 src/hatch/jetty/lib/apache-jsp/org.mortbay.jasper.apache-jsp-8.0.23.M1.jar create mode 100644 src/hatch/jetty/lib/apache-jsp/org.mortbay.jasper.apache-jsp-8.0.9.M3.jar create mode 100644 src/hatch/jetty/lib/apache-jstl/org.apache.taglibs.taglibs-standard-impl-1.2.1.jar create mode 100644 src/hatch/jetty/lib/apache-jstl/org.apache.taglibs.taglibs-standard-spec-1.2.1.jar create mode 100644 src/hatch/jetty/lib/cdi-core-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/cdi-servlet-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/cdi-websocket-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/ext/.donotdelete create mode 100644 src/hatch/jetty/lib/fcgi/fcgi-client-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/fcgi/fcgi-client-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/fcgi/fcgi-server-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/fcgi/fcgi-server-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/http2/http2-common-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/http2/http2-hpack-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/http2/http2-server-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jaspi/javax.security.auth.message-1.0.0.v201108011116.jar create mode 100644 src/hatch/jetty/lib/jetty-alpn-client-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-alpn-server-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-alpn-server-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-annotations-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-annotations-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-cdi-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-client-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-client-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-continuation-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-continuation-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-deploy-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-deploy-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-http-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-http-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-infinispan-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-io-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-io-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-jaas-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-jaas-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-jaspi-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-jaspi-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-jmx-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-jmx-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-jndi-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-jndi-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-nosql-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-plus-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-plus-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-proxy-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-proxy-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-quickstart-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-quickstart-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-rewrite-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-rewrite-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-schemas-3.1.jar create mode 100644 src/hatch/jetty/lib/jetty-security-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-security-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-server-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-server-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-servlet-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-servlet-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-servlets-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-servlets-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-util-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-util-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-webapp-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-webapp-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jetty-xml-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jetty-xml-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/jndi/javax.mail.glassfish-1.4.1.v201005082020.jar create mode 100644 src/hatch/jetty/lib/jndi/javax.transaction-api-1.2.jar create mode 100644 src/hatch/jetty/lib/jsp/javax.el-3.0.0.jar create mode 100644 src/hatch/jetty/lib/jsp/javax.servlet.jsp-2.3.2.jar create mode 100644 src/hatch/jetty/lib/jsp/javax.servlet.jsp-api-2.3.1.jar create mode 100644 src/hatch/jetty/lib/jsp/javax.servlet.jsp.jstl-1.2.2.jar create mode 100644 src/hatch/jetty/lib/jsp/jetty-jsp-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/jsp/jetty-jsp-jdt-2.3.3.jar create mode 100644 src/hatch/jetty/lib/jsp/org.eclipse.jdt.core-3.8.2.v20130121.jar create mode 100644 src/hatch/jetty/lib/jsp/org.eclipse.jetty.orbit.javax.servlet.jsp.jstl-1.2.0.v201105211821.jar create mode 100644 src/hatch/jetty/lib/monitor/jetty-monitor-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/monitor/jetty-monitor-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/servlet-api-3.1.jar create mode 100644 src/hatch/jetty/lib/setuid/jetty-setuid-java-1.0.1.jar create mode 100644 src/hatch/jetty/lib/setuid/jetty-setuid-java-1.0.3.jar create mode 100644 src/hatch/jetty/lib/setuid/libsetuid-linux.so create mode 100644 src/hatch/jetty/lib/setuid/libsetuid-osx.so create mode 100644 src/hatch/jetty/lib/spdy/spdy-client-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/spdy/spdy-core-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/spdy/spdy-http-common-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/spdy/spdy-http-server-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/spdy/spdy-server-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/spring/jetty-spring-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/spring/jetty-spring-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/websocket/javax-websocket-client-impl-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/websocket/javax-websocket-client-impl-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/websocket/javax-websocket-server-impl-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/websocket/javax-websocket-server-impl-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/websocket/javax.websocket-api-1.0.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-api-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-api-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-client-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-client-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-common-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-common-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-server-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-server-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-servlet-9.2.13.v20150730.jar create mode 100644 src/hatch/jetty/lib/websocket/websocket-servlet-9.3.3.v20150827.jar create mode 100644 src/hatch/jetty/license-eplv10-aslv20.html create mode 100644 src/hatch/jetty/logs/.donotdelete create mode 100644 src/hatch/jetty/modules/.donotdelete create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_05.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_11.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_20.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_25.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_31.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_40.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_45.mod create mode 100644 src/hatch/jetty/modules/alpn-impl/alpn-1.8.0_51.mod create mode 100644 src/hatch/jetty/modules/alpn.mod create mode 100644 src/hatch/jetty/modules/annotations.mod create mode 100644 src/hatch/jetty/modules/apache-jsp.mod create mode 100644 src/hatch/jetty/modules/apache-jstl.mod create mode 100644 src/hatch/jetty/modules/cdi.mod create mode 100644 src/hatch/jetty/modules/client.mod create mode 100644 src/hatch/jetty/modules/continuation.mod create mode 100644 src/hatch/jetty/modules/debug.mod create mode 100644 src/hatch/jetty/modules/debuglog.mod create mode 100644 src/hatch/jetty/modules/deploy.mod create mode 100644 src/hatch/jetty/modules/ext.mod create mode 100644 src/hatch/jetty/modules/fcgi.mod create mode 100644 src/hatch/jetty/modules/gzip.mod create mode 100644 src/hatch/jetty/modules/hawtio.mod create mode 100644 src/hatch/jetty/modules/home-base-warning.mod create mode 100644 src/hatch/jetty/modules/http.mod create mode 100644 src/hatch/jetty/modules/http2.mod create mode 100644 src/hatch/jetty/modules/http2c.mod create mode 100644 src/hatch/jetty/modules/https.mod create mode 100644 src/hatch/jetty/modules/infinispan.mod create mode 100644 src/hatch/jetty/modules/ipaccess.mod create mode 100644 src/hatch/jetty/modules/jaas.mod create mode 100644 src/hatch/jetty/modules/jamon.mod create mode 100644 src/hatch/jetty/modules/jaspi.mod create mode 100644 src/hatch/jetty/modules/jdbc-sessions.mod create mode 100644 src/hatch/jetty/modules/jminix.mod create mode 100644 src/hatch/jetty/modules/jmx-remote.mod create mode 100644 src/hatch/jetty/modules/jmx.mod create mode 100644 src/hatch/jetty/modules/jndi.mod create mode 100644 src/hatch/jetty/modules/jolokia.mod create mode 100644 src/hatch/jetty/modules/jsp-impl/apache-jsp.mod create mode 100644 src/hatch/jetty/modules/jsp-impl/apache-jstl.mod create mode 100644 src/hatch/jetty/modules/jsp-impl/glassfish-jsp.mod create mode 100644 src/hatch/jetty/modules/jsp-impl/glassfish-jstl.mod create mode 100644 src/hatch/jetty/modules/jsp.mod create mode 100644 src/hatch/jetty/modules/jstl.mod create mode 100644 src/hatch/jetty/modules/jvm.mod create mode 100644 src/hatch/jetty/modules/logging.mod create mode 100644 src/hatch/jetty/modules/lowresources.mod create mode 100644 src/hatch/jetty/modules/monitor.mod create mode 100644 src/hatch/jetty/modules/nosql.mod create mode 100644 src/hatch/jetty/modules/plus.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_40.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_45.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_51.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_55.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_60.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_65.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_67.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_71.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_72.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_75.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_76.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_79.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.7.0_80.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_05.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_11.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_20.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_25.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_31.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_40.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_45.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn-1.8.0_51.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/alpn.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_04.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_05.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_06.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_07.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_09.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_10.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_11.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_13.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_15.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_17.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_21.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_25.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_40.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_45.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_51.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_55.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_60.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_65.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_67.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_71.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_72.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_75.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_76.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_79.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn-1.7.0_80.mod create mode 100644 src/hatch/jetty/modules/protonego-impl/npn.mod create mode 100644 src/hatch/jetty/modules/protonego.mod create mode 100644 src/hatch/jetty/modules/proxy-protocol-ssl.mod create mode 100644 src/hatch/jetty/modules/proxy-protocol.mod create mode 100644 src/hatch/jetty/modules/proxy.mod create mode 100644 src/hatch/jetty/modules/quickstart.mod create mode 100644 src/hatch/jetty/modules/requestlog.mod create mode 100644 src/hatch/jetty/modules/resources.mod create mode 100644 src/hatch/jetty/modules/rewrite.mod create mode 100644 src/hatch/jetty/modules/security.mod create mode 100644 src/hatch/jetty/modules/server.mod create mode 100644 src/hatch/jetty/modules/servlet.mod create mode 100644 src/hatch/jetty/modules/servlets.mod create mode 100644 src/hatch/jetty/modules/setuid.mod create mode 100644 src/hatch/jetty/modules/spdy.mod create mode 100644 src/hatch/jetty/modules/spring.mod create mode 100644 src/hatch/jetty/modules/ssl.mod create mode 100644 src/hatch/jetty/modules/stats.mod create mode 100644 src/hatch/jetty/modules/webapp.mod create mode 100644 src/hatch/jetty/modules/websocket.mod create mode 100644 src/hatch/jetty/modules/xinetd.mod create mode 100644 src/hatch/jetty/notice.html create mode 100644 src/hatch/jetty/resources/log4j.properties create mode 100644 src/hatch/jetty/start.ini create mode 100644 src/hatch/jetty/start.jar create mode 100644 src/hatch/jetty/webapps/README.TXT create mode 100644 src/hatch/lib/jetty-util-ajax-9.2.13.v20150730.jar create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/FileIO.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/Hatch$1.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/Hatch$2$1.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/Hatch$2.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/Hatch$BrowserView.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/Hatch$MsgListenService$1.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/Hatch$MsgListenService.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/Hatch.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/HatchWebSocketHandler.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/HatchWebSocketServlet.class create mode 100644 src/hatch/lib/org/evergreen_ils/hatch/PrintManager.class create mode 100644 src/hatch/run-win.bat create mode 100644 src/hatch/run.sh create mode 100644 src/hatch/src/org/evergreen_ils/hatch/FileIO.java create mode 100644 src/hatch/src/org/evergreen_ils/hatch/Hatch.java create mode 100644 src/hatch/src/org/evergreen_ils/hatch/HatchWebSocketHandler.java create mode 100644 src/hatch/src/org/evergreen_ils/hatch/HatchWebSocketServlet.java create mode 100644 src/hatch/src/org/evergreen_ils/hatch/PrintManager.java create mode 100644 src/tools/jdk-extract.bat diff --git a/README.win b/README.win new file mode 100644 index 000000000..ba18f0418 --- /dev/null +++ b/README.win @@ -0,0 +1,59 @@ +Hatch - Java Print / Storage / Etc Service + +** ROUGH SETUP NOTES ** + +Install Hatch on your desktop -- Windows edition: + +If you're reading this online, first download hatch to your desktop. + +The canonical location for this project is: +http://git.evergreen-ils.org/?p=working/random.git;a=shortlog;h=refs/heads/collab/berick/hatch2 + +But a convenient mirror and download link is this: +https://github.com/phasefx/random/archive/hatch.zip + +Unzip the file wherever you'd like to install the application, such as in C:\Program Files\ + +Then go to http://download.eclipse.org/jetty/ + +Download the latest stable-9 .zip version into the same directory as this README file. + +Unzip and rename the folder to "jetty". + +Then go to http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html + +Download the Development Kit .exe for your version of Windows. + +Install it. + +In the same directory as this README file, create a subdirectory named "lib". + +Then go to http://mvnrepository.com/artifact/org.eclipse.jetty/jetty-util-ajax + +Download the latest 9.2.x .jar file into the "lib" directory. + +Edit the run-win.bat file, and, if needed, change the JAVA_HOME variable to the location where you installed the Java Development Kit. In my case, I changed the line: + +SET JAVA_HOME="C:\Program Files\Java\jdk1.8.0_20" + +to + +SET JAVA_HOME="C:\Program Files\Java\jdk1.8.0_31" + +Then open a Command window and cd into the same directory as this README file. One easy way to do this is to click into the address of the bar of window displaying the directory, typing "cmd" and pressing enter. + +Then enter: +run-win.bat + +Choose Allow for any Firewall/Security prompt. + +Then go to https://localhost:8443/ in Chrome and click through the security warning. +(In my case, I clicked on the link "Advanced" and then "Proceed to localhost (unsafe)") + +You should expect a 404 Not Found page. + +Then open the browser client. + +Set "This workstation uses a remote print / storage service ("Hatch")?" under Admin -> Workstation + +Optionally configure / test printing diff --git a/buildprocess.txt b/buildprocess.txt index 92722d733..46230fe51 100644 --- a/buildprocess.txt +++ b/buildprocess.txt @@ -3,9 +3,21 @@ This is the build process for working on the installer. ;Tools needed NSIS 3.0: http://nsis.sourceforge.net/Main_Page + + ;------- ;Windows +;------------- +;Initial Setup +1. Download the latest version of the JDK(As current, 1.8.60) +2. Place downloaded JDK to src/tools +3. In the command ine(running in administrator mode), run jdk-extract.bat + This should create a folder containing etracted JDK files. +4. Move newly extracted files(not the folder conntaining them) to src/hatch/JDK + +;----------- +;Build Steps 1. Save any changes in src/hatch files 2. Add all content of src/hatch to zip file: hatch.zip 3. Move hatch.zip to base folder diff --git a/hatch.nsi b/hatch.nsi new file mode 100644 index 000000000..fa54e23a1 --- /dev/null +++ b/hatch.nsi @@ -0,0 +1,182 @@ +;----------------------------------------------------------------------- +; NSIS Installation Script ; +; Kyle Huckins ; +; khuckins@catalystdevworks.com ; +; This will be a guide to working with NSIS to create an installer. ; +; It is a heavily commented practice installer, basically. ; +; ; +; Comments are designated by # and ; ; +; # tends to be at the beginning of a line, while ; is ; +; primarilly used as end-of-line comments. However it's ; +; common to use just ; for comments as well. ; +; ; +; Here we're defining a few variables. Our program's name, ; +; our company's name, a description of our product, our version ; +; numbers, a URL for help, a URL for updates, a product URL, and ; +; an about URL. Also an install size. ; +;------------------------------------------------------------------------ +!include "MUI2.nsh" ;This enables the use of ModernUI, and must go at the top +; !include x64.nsh ;So we can figure out what version of Java to use + +; This is our basic information +; Variables are called later by using ${variablename} +!define APPNAME "Hatch" +!define COMPANYNAME "Equinox Software, Inc." +!define DESCRIPTION "Java based Print Service and Local Storage System" +; Version numbers should be integers +!define VERSIONMAJOR 2 +!define VERSIONMINOR 0 +!define VERSIONBUILD 0 +; The following will be displayed by the "Click here for support information" link +; in Add/Remove Programs. You can use mailto: links here. +!define HELPURL "mailto:[your@email.here]" +!define UPDATEURL "http://..." +!define ABOUTURL "http://..." +; The size in KB of all the files we'll be installing +!define INSTALLSIZE 0 +!define MUI_COMPONENTSPAGE_SMALLDESC ;No value +!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ;Two colors +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional +!define MUI_ABORTWARNING +!define MUI_RIGHTIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp" +!define MUI_PAGE_HEADER_TEXT "Hatch Installer" +; Welcome Page Variables +!define MUI_WELCOMEPAGE_TEXT "Welcome to the Hatch install wizard. This application will guide you through the installation for Hatch." +; License Page Variables +!define MUI_LICENSEPAGE_TEXT_TOP "Read through the license carefully." +!define MUI_LICENSEPAGE_TEXT_BOTTOM "If you accept the terms of the agreement, click I Agree to continue. You must accept the agreement to install Hatch." +;--------------------------------------------------------------- +; Our Installer's filename +Outfile "hatch_installer.exe" +RequestExecutionLevel admin +; an RTF/TXT file containing licenses. If TXT, +; must be in DOS text format (\r\n) +; LicenseData "license.txt" + +;----------------------------------- +; Your includes files should go here +!include LogicLib.nsh ;Sparsly documented library, but necessary for any real logic + +;----------------------------------------------- +; Content that goes into our installer's titlebar +Name "${APPNAME}" +; Icon "logo.ico" ;An icon for our installer + +; Page system - we'll have two, our install location and the installation +; page directory +; page instfiles +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_LICENSE "license.rtf" +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" +;------------------------------------- +; Code to verify if a user is an admin +!macro VerifyUserIsAdmin +UserInfo::GetAccountType +pop $0 +${If} $0 != "admin" ;Require admin rights + messageBox mb_iconstop "Administrator rights required!" + setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED + quit +${EndIf} +!macroend + +function .onInit + setShellVarContext all + !insertmacro VerifyUserIsAdmin +functionEnd + +;-------------------------- +; Where our install files go +InstallDir "$PROGRAMFILES\${APPNAME}" ;This is where our variables come in. +;---------------------------------------------- +; Probably put our previous version check here + +section "install" + ; Install directory files - keep these in the same directory + ; as the script before compiling. + SetOutPath "$INSTDIR\temp" ;Temporary folder to place our zips + File "hatch.zip" + nsUnzip::Extract /n "hatch.zip" /d=$INSTDIR /END ;Extract zip to main folder + SetOutPath $INSTDIR\ ;Sets output path to our InstallDir - we can't remove a folder we're in + rmDir /r $INSTDIR\temp ;Remove our temp folder and all files within + + ; Any other files necessary for the installation + + ;Defining Keystore + ;First set JAVA_HOME only for the installer process + System::Call 'Kernel32::SetEnvironmentVariable(t, t)i ("JAVA_HOME", "$INSTDIR\JDK").r0' + StrCmp $0 0 error + ExecWait ProgThatReadsEnv.exe + Goto done + error: ;If there's some error in setting it, let user know. + MessageBox MB_OK "Can't set environment variable" + done: ;Start setting up keystore + Exec '"$INSTDIR\JDK\bin\keytool.exe" -keystore keystore -alias jetty -genkey -keyalg RSA' + ; Uninstaller + writeUninstaller "$INSTDIR\uninstall.exe" + + ; Start Menu Shortcut + createDirectory "$SMPROGRAMS\${APPNAME}" + createShortCut "$SMPROGRAMS\Uninstall ${APPNAME}.lnk" "$INSTDIR\uninstall.exe" "" "" + + ; Registry info for Add/Remove Programs + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\"" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR} + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR} + # There is no option for modifying or repairing the install + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1 + # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE} + +SectionEnd + +############################# +# Uninstaller code + +function un.onInit + SetShellVarContext all + + # Verify uninstaller + MessageBox MB_OKCANCEL "Permanently remove ${APPNAME}?" IDOK next + Abort + next: + !insertmacro VerifyUserIsAdmin +functionEnd + +section "uninstall" + # Remove start menu shortcut + delete "$SMPROGRAMS\${APPNAME}.lnk" + # Try to remove the start menu folder - only possible if empty + rmDir "$SMPROGRAMS\${APPNAME}" + + # Remove the actual files + delete $INSTDIR\*.* + rmDir /r $INSTDIR\JDK ;NOTE: NEVER EVER EVER rmDIR /r $INSTDIR itself. It will + rmDir /r $INSTDIR\lib ;wipe out all files on the level of $INSTDIR, so if user + rmDir /r $INSTDIR\src ;installs to Program Files, bye bye Program Files. + rmDir /r $INSTDIR\jetty + # Delete uninstaller last ---IMPORTANT this should always be the last thing + delete $INSTDIR\uninstall.exe + + # Remove installation directory + rmDir $INSTDIR + + # Remove uninstaller info from registry + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" + +sectionEnd \ No newline at end of file diff --git a/license.rtf b/license.rtf new file mode 100644 index 0000000000000000000000000000000000000000..9510a15163745b5d247385586dc4fa9ca1ab1c34 GIT binary patch literal 206 zcmW-b!3u*g5JY2WXHnCQ|pO0u>G@!zY$@E8V$nHiIKjTAHQ zuw$pq* Workstation +# optionally configure / test printing diff --git a/src/hatch/README.win b/src/hatch/README.win new file mode 100644 index 000000000..ba18f0418 --- /dev/null +++ b/src/hatch/README.win @@ -0,0 +1,59 @@ +Hatch - Java Print / Storage / Etc Service + +** ROUGH SETUP NOTES ** + +Install Hatch on your desktop -- Windows edition: + +If you're reading this online, first download hatch to your desktop. + +The canonical location for this project is: +http://git.evergreen-ils.org/?p=working/random.git;a=shortlog;h=refs/heads/collab/berick/hatch2 + +But a convenient mirror and download link is this: +https://github.com/phasefx/random/archive/hatch.zip + +Unzip the file wherever you'd like to install the application, such as in C:\Program Files\ + +Then go to http://download.eclipse.org/jetty/ + +Download the latest stable-9 .zip version into the same directory as this README file. + +Unzip and rename the folder to "jetty". + +Then go to http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html + +Download the Development Kit .exe for your version of Windows. + +Install it. + +In the same directory as this README file, create a subdirectory named "lib". + +Then go to http://mvnrepository.com/artifact/org.eclipse.jetty/jetty-util-ajax + +Download the latest 9.2.x .jar file into the "lib" directory. + +Edit the run-win.bat file, and, if needed, change the JAVA_HOME variable to the location where you installed the Java Development Kit. In my case, I changed the line: + +SET JAVA_HOME="C:\Program Files\Java\jdk1.8.0_20" + +to + +SET JAVA_HOME="C:\Program Files\Java\jdk1.8.0_31" + +Then open a Command window and cd into the same directory as this README file. One easy way to do this is to click into the address of the bar of window displaying the directory, typing "cmd" and pressing enter. + +Then enter: +run-win.bat + +Choose Allow for any Firewall/Security prompt. + +Then go to https://localhost:8443/ in Chrome and click through the security warning. +(In my case, I clicked on the link "Advanced" and then "Proceed to localhost (unsafe)") + +You should expect a 404 Not Found page. + +Then open the browser client. + +Set "This workstation uses a remote print / storage service ("Hatch")?" under Admin -> Workstation + +Optionally configure / test printing diff --git a/src/hatch/hatch.xml b/src/hatch/hatch.xml new file mode 100644 index 000000000..372cba748 --- /dev/null +++ b/src/hatch/hatch.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + * + + + + + + + + https + + + + + + + 512 + + + + + + + /jetty/etc/keystore + OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4 + OBF:1u2u1wml1z7s1z7a1wnl1u2g + /jetty/etc/keystore + OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4 + + + + + + + + + + + + + + + + + + + http/1.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + maxThreads + + + + + + maxConnections + + + + + + idleTimeout + + + + + + timeout + + + + + + + + + + + + + diff --git a/src/hatch/jetty/README.TXT b/src/hatch/jetty/README.TXT new file mode 100644 index 000000000..4f9d64bca --- /dev/null +++ b/src/hatch/jetty/README.TXT @@ -0,0 +1,68 @@ + +JETTY +===== +The Jetty project is a 100% Java HTTP Server, HTTP Client +and Servlet Container from the eclipse foundation + + http://www.eclipse.org/jetty/ + +Jetty is open source and is dual licensed using the Apache 2.0 and +Eclipse Public License 1.0. You may choose either license when +distributing Jetty. + + +RUNNING JETTY +============= +The run directory is either the top-level of a binary release +or jetty-distribution/target/distribution directory when built from +source. + +To run with the default options: + + $ cd demo-base + $ java -jar ../start.jar + +To see the available options and the default arguments +provided by the start.ini file: + + $ java -jar /path/to/start.jar --help + + +Many Jetty features can be enabled by using the --module command +For example: + + $ cd mybase + $ java -jar /path/to/start.jar --module=https,deploy + +Will enable the https and deploy modules (and their transitive +dependencies) temporarily for this specific run of Jetty. + +To see what modules are available + + $ java -jar /path/to/start.jar --list-modules + + + +JETTY BASE +========== + +The jetty.base property is a property that can be defined on the +command line (defaults to what your java 'user.dir' property points to) +Jetty's start.jar mechanism will configure your jetty instance from +the configuration present in this jetty.base directory. + +Example setup: + +# Create the base directory + + $ mkdir mybase + $ cd mybase + +# Initialize the base directory's start.ini and needed directories + + $ java -jar /path/to/jetty-dist/start.jar --add-to-start=http,deploy + +# Run this base directory configuration + + $ java -jar /path/to/jetty-dist/start.jar + diff --git a/src/hatch/jetty/VERSION.txt b/src/hatch/jetty/VERSION.txt new file mode 100644 index 000000000..23d75df3a --- /dev/null +++ b/src/hatch/jetty/VERSION.txt @@ -0,0 +1,8224 @@ +jetty-9.2.13.v20150730 - 30 July 2015 + + 472859 ConcatServlet may expose protected resources. + + 473006 Encode addPath in URLResource + + 473243 Delay resource close for async default content + + 473266 Better handling of MultiException + + 473322 GatherWrite limit handling + + 473624 ProxyServlet.Transparent / TransparentDelegate add trailing slash + before query when using prefix. + + 473832 SslConnection flips back buffers on handshake exception + +jetty-9.2.12.v20150709 - 09 July 2015 + + 469414 Proxied redirects expose upstream server name. + + 469936 Remove usages of SpinLock. + + 470184 Send the proxy-to-server request more lazily. + +jetty-9.2.11.v20150529 - 29 May 2015 + + 461499 ConnectionPool may leak connections. + + 463579 Add support for 308 status code. + + 464292 Implement stream-based transformer for AsyncMiddleManServlet. + + 464438 ClassFileTransformer support in + org.eclipse.jetty.webapp.WebAppClassLoader broken + + 464740 DosFilter whiteList check improvement + + 464869 PathResource.addPath allows absolute resolution. + + 464989 AbstractSessionManager.removeEventListener() should remove + HttpSessionIdListener + + 465053 Prevent gzip buffer overflow on complete + + 465181 HttpParser parse full end chunk. + + 465202 Forked Mojo does not extract war overlays/dependencies + + 465359 Resource.newResource(String res, boolean useCache) does not use + useCache argument + + 465360 URLResource.addPath should use _useCaches setting to create new + Resource + + 465700 NullPointerException in ResourceHandler with welcome files + + 465734 DosFilter whitelist bit pattern fix + + 465747 Jetty is failing to process all HTTP OPTIONS requests. + + 466329 Fixed local only TestFilter + + 467276 NPE protection in SslContextFactory + + 467603 Response 401 from server hangs client. + + 467936 w Check HttpOutput aggregateSize is < bufferSize + + 468008 Scanner ignores directory length + + 468421 HttpClient#send fails with IllegalArgumentException on non-lowercase + schemes. + + 468714 SelectorManager updateKey race without submit + + 468747 XSS vulnerability in HttpSpiContextHandler + +jetty-9.2.11.M0 - 25 March 2015 + + 454934 WebSocketClient / connectToServer can block indefinitely during + upgrade failure + + 459273 Redundant license notices + + 461499 ConnectionPool may leak connections. + + 461919 Use osgi-friendly serviceloader mechanism for WebSocketServletFactory + + 461941 JMX Remote host:port set from start properties + + 462546 ShutdownMonitor should bind to jetty.host + + 462616 Race between finishing a connect and timing it out. + +jetty-9.2.10.v20150310 - 10 March 2015 + + 445518 Provide different error callbacks to ProxyServlet. + + 456521 ShutdownHandler should shut down more gracefully + + 458140 Added DispatcherType support to RewriteHandler + + 460769 ClientUpgradeRequest sends cookies in the wrong format + + 460905 Make sure TimeoutCompleteListener is cancelled if the request cannot + be sent. + + 461070 Handle setReadListener on request with no content + + 461133 allow stop port to reuse address + + 461452 Double release of buffer by HttpReceiverOverHTTP + + 461499 ConnectionPool may leak connections. + + 461623 BufferUtil.writeTo does not update position consistently + + 461643 HttpContent.advance() race. + +jetty-9.2.9.v20150224 - 24 February 2015 + + 459273 Redundant license notices + + 460176 When checking for precompiled jsp, ensure classname is present + + 460180 Jaas demo has wrong doco in html + + 460291 AsyncGzipFilter Mappings + + 460371 AsyncMiddleManServlet.GZipContentTransformer fails if last transform + has no output + + 460372 if web.xml does not contain jspc maven plugin insertionMarker + behavior is wrong + + 460443 Race condition releasing the response buffer. + + 460642 HttpParser error 400 can expose previous buffer contents in HTTP + status reason message + +jetty-9.2.8.v20150217 - 17 February 2015 + + 451092 Connector will fail if HeaderListener return false. + + 455436 ProxyServlet sends two User-Agent values. + + 457893 Close temp jar resource + + 458101 added test for maxFormContentSize + + 458174 Example Jar Server + + 458175 multipart annotation on lazily loaded servlet does not work + + 458209 Length check for HttpMethod MOVE lookahead + + 458354 ALPNServerConnection.select negotiation. + + 458495 CompletableCallback may not notify failures. + + 458527 Implement an async proxy servlet that can perform content + transformations. + + 458568 JDBCLoginService javadoc incorrectly references HashLoginService + + 458849 org.eclipse.jetty.util.Uptime.DefaultImpl() not available on GAE + + 459006 master branch does not build on norwegian locale + + 459125 GzipHandler default mimeType behavior incorrect + + 459352 AsyncMiddleManServlet should set "Host:" header correctly in proxy to + remote request headers. + + 459490 Defining a duplicate error page in webdefault.xml and web.xml results + in an error + + 459542 AsyncMiddleManServlet race condition on first download content. + + 459560 jetty.sh handles start.d and no start.ini + + 459769 AsyncMiddleManServlet race condition on last download content. + + 459845 Support upgrade + + 459963 Failure writing content of a committed request leaks connections. + +jetty-9.2.7.v20150116 - 16 January 2015 + + 420944 Hot Deployment of WAR when Context XML exists doesn't trigger + redeploy + + 448944 Provide m2e lifecycle mapping metadata for jetty-jspc-maven-plugin + + 452201 Set the container classloader for osgi during webbundle undeploy + + 454291 Added busy threads JMX attribute to QueuedThreadPool + + 454773 SSLConnection use on Android client results in loop + + 454954 Jetty osgi should skip fragment and required bundles that are in the + uninstalled state + + 454955 OSGi AnnotationParser should skip resources that are not in the + classpath and close the class inputstream when done scanning it + + 454983 Source bundles should not be singleton + + 455047 Update JASPI + + 455174 jetty-plus JNDI tests should use unique JNDI paths + + 455330 Multiple Jetty-ContextFilePath entries separated by commas doesn't + work + + 455476 Persist updated session expiry time for MongoSessionManager + + 455655 ensure multipart form-data parsing exception thrown to servlet + + 455863 Fixed jetty.sh handling of multiple JETTY_ARGS + + 456426 Exception on context undeploy from EnvConfiguration + + 456486 Jar containing ServiceContainerInitializer impl not found in TCCL in + osgi + + 456956 Reduce ThreadLocal.remove() weak reference garbage + + 457017 Reflective call to websocket methods that fail have ambiguous + exceptions + + 457032 Request sent from a failed CompleteListener due to connect timeout is + failed immediately. + + 457130 HTTPS request with IP host and HTTP proxy throws + IllegalArgumentException. + + 457696 JMX implementation should not be overridden by WebApp classes + +jetty-9.2.6.v20141205 - 05 December 2014 + + 383207 Use BundleFileLocatorHelperFactory to obtain BundleFileLocatorHelper + + 443652 Remove dependency on java.lang.management classes + + 447472 Clear async context timeout on async static content + + 451529 Change sentinel class for finding jstl on classpath to + org.apache.taglibs.standard.tag.rt.core.WhenTag + + 451634 DefaultServlet: useFileMappedBuffer javadoc is misleading + + 452188 Delay dispatch until content optimisation. + + 452201 EnvConfiguration.destroy() should set the classloader + + 452246 Fixed SSL hang on last chunk + + 452261 Multiple servlets map to path *.jsp when using jsp-property-group + + 452424 Do not add Date header if already set + + 452516 Make HttpOutput aggregation size configurable. + + 453386 Jetty not working when configuring QueuedThreadPool with + minThreads=0. + + 453629 Fixed big write test + + 453793 _maxHeaderBytes>0 is not verified in parseNext() when in + State.CLOSED. + + 453801 Jetty does not check for already registered services when + bootstrapping + + 454157 HttpInput.consumeAll spins if input is in async mode. + +jetty-9.2.5.v20141112 - 12 November 2014 + + 448446 org.eclipse.jetty.start.Main create classloader duplicate + + 449594 Handle ArrayTrie overflow with false return + + 449811 handle unquoted etags when gzipping + + 450467 Integer overflow in Session expiry calculation in MongoSessionManager + + 450483 Missing parameterization of etc/jetty-deploy.xml. + + 450484 Missing parameterization of etc/jetty-http[s].xml. + + 450855 GzipFilter MIGHT_COMPRESS exception + + 450873 Disable tests that downcaste wrapped GzipFilterResponses + + 450894 jetty.sh does not delete JETTY_STATE at start + +jetty-9.2.4.v20141103 - 03 November 2014 + + 376365 "jetty.sh start" returns 0 on failure + + 396569 'bin/jetty.sh stop' reports 'OK' even when jetty was not running + + 396572 Starting jetty from cygwin is not working properly + + 438387 NullPointerException after ServletUpgradeResponse.sendForbidden is + called during WebSocketCreator.createWebSocket + + 440729 SSL requests often fail with EOFException or IllegalStateException. + + 440925 NPE when using relative paths for --start-log-file + + 442419 CrossOriginFilter javadoc says "exposeHeaders", but should be + "exposedHeaders" + + 442495 Bad Context ClassLoader in JSR356 WebSocket onOpen + + 442942 Content sent with status 204 (No Content) + + 443529 CrossOriginFilter does not accept wildcard for allowedHeaders + + 443530 CrossOriginFilter does not set the Vary header + + 443550 improved FileResource encoded alias checking + + 444031 Ensure exceptions do not reduce threadpool below minimum + + 444124 JSP include with can cause infinite recursion + + 444214 Socks4Proxy fails when reading less than 8 bytes. + + 444222 replace CRLF in header values with whitespace rather than ? + + 444415 iterative WriteFlusher + + 444416 AsyncProxyServlet recursion. + + 444517 Ensure WebSocketUpgradeFilter is always first in filter chain + + 444547 Format exception in ResourceCache.Content.toString() + + 444595 nosql/mongodb - Cleanup process/Refreshing does not respect encoding + of attribute keys + + 444617 Expose local and remote socket address to applications + + 444676 Goal jetty:deploy-war produces errors with version 9.2.3 + + 444722 Fixed order of setReuseAddress call + + 444748 WebSocketClient.stop() does not unregister from ShutdownThread + + 444764 HttpClient notifies callbacks for last chunk of content twice. + + 444771 JSR356 / EndPointConfig.userProperties are not unique per endpoint + upgrade + + 444863 ProxyServlet does not filter headers listed by the Connection header. + + 444896 Overriding of web-default servlet mapping in web.xml not working with + quickstart + + 445157 First redeployed servlet leaks WebAppContext + + 445239 Rename weld.mod to cdi.mod to be consistent with past module namings + + 445258 STOP.WAIT is not really respected + + 445374 Reevaluate org.eclipse.jetty.websocket.jsr356 enablement concepts + + 445495 Improve Exception message when no jndi resource to bind for a name in + web.xml + + 445542 Add SecuredRedirectHandler for embedded jetty use to redirect to + secure port/scheme + + 445821 Error 400 should be logged with RequestLog + + 445823 RequestLogHandler at end of HandlerCollection doesn't work + + 445830 Support setting environment variables on forked jetty with + jetty:run-forked + + 445979 jetty.sh fails to start when start-stop-daemon does not exist and the + user is not root + + 446033 org.eclipse.jetty.websocket.server.WebSocketServerFactory not + available in OSGi + + 446063 ALPN Fail SSL Handshake if no supported Application Protocols. + + 446107 NullPointerException in ProxyServlet when extended by Servlet without + a package + + 446425 Oracle Sql error on JettySessions table when this table do not exist + already + + 446506 getAsyncContext ISE before startAsync on async dispatches + + 446563 Null HttpChannel.getCurrentHttpChannel() in + ServletHandler.doFilter(). + + 446672 NPN Specification issue in the case no protocols are selected. + + 446923 SharedBlockingCallback does not handle connector max idle time of + Long.MAX_VALUE; BlockerTimeoutException not serializable + + 447381 Disable SSLv3 by default. + + 447472 test harness for slow large writes + + 447627 MultiPart file always created when "filename" set in + Content-Disposition + + 447629 getPart()/getParts() fails on Multipart request if getParameter is + called in a filter first + + 447746 HttpClient is always going to send User-Agent header even though I do + not want it to. + + 447979 Refactor to make MetaData responsible for progressively ordering + web-inf jars + + 448156 Fixed INACTIVE race in IteratingCallback + + 448225 Removed unnecessary synchronize on initParser + + 448841 Clarified selectors==0 javadoc 448840 Clarified ServerConnector + javadoc 448839 Fixed javadoc typo in ServerConnector + + 449001 Remove start.d directory from JETTY_HOME + + 449003 WARNING: Cannot enable requested module [protonego-impl]: not a valid + module name + + 449038 WebSocketUpgradeFilter must support async. + + 449175 Removed extra space in NCSA log + + 449291 create-files downloads without license + + 449372 Make jvmArgs of jetty:run-forked configurable from command line + + 449603 OutputStreamContentProvider hangs when host is not available. + +jetty-9.2.3.v20140905 - 05 September 2014 + + 347110 renamed class transformer methods + + 411163 Add embedded jetty code example with JSP enabled + + 435322 Added a idleTimeout to the SharedBlockerCallback + + 435533 Handle 0 sized async gzip + + 435988 ContainerLifeCycle: beans never stopped on remove + + 436862 Update jetty-osgi to asm-5 and spifly-1.0.1 + + 438500 Odd NoClassDef errors when shutting down the jetty-maven-plugin via + the stop goal + + 440255 ensure 500 is logged on thrown Errors + + 441073 isEarlyEOF on HttpInput + + 441475 org.eclipse.jetty.server.ResourceCache exceptions under high load + + 441479 Jetty hangs due to deadlocks in session manager + + 441649 Update to jsp and el Apache Jasper 8.0.9 + + 441756 Ssl Stackoverflow on renegotiate + + 441897 Fixed etag handling in gzipfilter + + 442048 fixed sendRedirect %2F encoding + + 442383 Improved insufficient threads message + + 442628 Update example xml file for second server instance to extract wars + + 442642 Quickstart generates valid XML + + 442759 Allow specific ServletContainerInitializers to be excluded + + 442950 Embedded Jetty client requests to localhost hangs with high cpu usage + (NIO OP_CONNECT Solaris/Sparc). + + 443049 Improved HttpParser illegal character messages + + 443158 Fixed HttpOutput spin + + 443172 web-fragment.xml wrongly parsed for applications running in serlvet + 2.4 mode + + 443231 java.lang.NullPointerException on scavenge scheduling when session id + manager declared before shared scheduler + + 443262 Distinguish situation where jetty looks for tlds in META-INF but + finds none vs does not look + +jetty-8.1.16.v20140903 - 03 September 2014 + + 409788 Large POST body causes java.lang.IllegalStateException: SENDING => + HEADERS. + + 433689 Evict idle HttpDestinations from client + + 433802 check EOF in send1xx + + 438996 Scavenger-Timer in HashSessionManager can die because of + IllegalStateException from getMaxInactiveInterval + + 442048 fixed sendRedirect %2F encoding + + 442839 highly fragmented websocket messages can result in corrupt binary + messages + +jetty-7.6.16.v20140903 - 03 September 2014 + + 409788 Large POST body causes java.lang.IllegalStateException: SENDING => + HEADERS. + + 433802 check EOF in send1xx + + 442839 highly fragmented websocket messages can result in corrupt binary + messages + +jetty-9.2.2.v20140723 - 23 July 2014 + + 411323 DosFilter/QoSFilter should use AsyncContext rather than + Continuations. + + 432815 Fixed selector stop race + + 434536 Improved Customizer javadoc + + 435322 Fixed Iterating Callback close + + 435653 encode async dispatched requestURI + + 435895 jetty spring module is not in distribution + + 436874 WebSocket client throwing a NullPointer when handling a pong + + 436894 GzipFilter code cleanup + + 436916 CGI: "Search docroot for a matching execCmd" logic is wrong + + 436987 limited range of default acceptors and selectors + + 437051 Refactor Filter chain handling of Request.isAsyncSupported + + 437395 Start / Properties in template sections should be default applied for + enabled modules + + 437419 Allow scanning of META-INF for resources,fragments,tlds for unpacked + jars + + 437430 jettyXml not consistent between jetty:run and jetty:run-forked + + 437462 consistent test failure in jetty-start under windows + + 437706 ServletTester calls LocalConnector method with hardcoded timeout + + 437800 URLs with single quote and spaces return 404 + + 437996 avoid async status race by not setting 200 on handled + + 438079 Review garbage creation in 9.2.x series. + + 438190 findbug improvements + + 438204 leave IPv6 addresses [] wrapped in getServerName + + 438327 Remove hard coded Allow from OPTIONS * + + 438331 AbstractLogger.debug(String,long) infinite loop + + 438434 ResourceHandler checks aliases + + 438895 Add mvn jetty:effective-web-xml goal + + 439066 javadoc setStopAtShutdown + + 439067 Improved graceful stop timeout handling + + 439194 Do not configure fake server for jetty:run-forked + + 439201 GzipFilter and AsyncGzipFilter should strip charset from Content-Type + before making exclusion comparison in doFilter + + 439369 Deprecate CrossContextPseudoSession + + 439387 Ensure empty servlet-class never generated for quickstart + + 439390 Ensure jsp scratchdir is created same way for quickstart and + non-quickstart + + 439394 load-on-startup with value 0 not preserved for quickstart + + 439399 Scan tlds for apache jasper standard taglib with jetty-maven-plugin + + 439438 DataSourceLoginService does not refresh passwords when changed in + database + + 439507 Possible timing side-channel when comparing MD5-Credentials + + 439540 setReuseAddress() in ServerConnector.java is not coded properly + + 439652 GzipHandler super.doStart + + 439663 Allow mappings to be declared before servlet/filter + + 439672 support using Apache commons daemon for managing Jetty + + 439753 ConstraintSecurityHandler has dead code for processing constraints + + 439788 CORS filter headers gone between 9.2.0.M0 and 9.2.1 .v20140609 for + ProxyServlet requests. + + 439809 mvn jetty:jspc cannot find taglibs in dependency jars + + 439895 No event callback should be invoked after the "failure" callback. + + 440020 Abort bad proxy responses with sendError(-1) + + 440038 Content decoding may fail. + + 440114 ContextHandlerCollection does not skip context wrappers + + 440122 Remove usages of ForkInvoker. + +jetty-9.2.1.v20140609 - 09 June 2014 + + 347110 Supprt ClassFileTransormers in WebAppClassLoader + + 432192 jetty-start / Allow JETTY_LOGS use for start-log-file + + 432321 jetty-start / Allow defining extra start directories for common + configurations + + 435322 Improved debug + + 436029 GzipFilter errors on asynchronous methods with message to + AsyncGzipFilter + + 436345 Refactor AbstractSession to minimize burden on subclasses to + implement behaviour + + 436388 Allow case-insensitive STOP.KEY and STOP.PORT use + + 436405 ${jetty.base}/resources not on classpath with default configuration + + 436520 Start / Allow https and file urls in jetty-start's module download + mechanism + + 436524 Start / Downloadable [files] references in modules cannot use ":" + themselves + +jetty-9.2.0.v20140526 - 26 May 2014 + + 429390 Decoders and Encoders are not registered for non-annotated + ClientEndpoint + + 434810 better handling of bad messages + + 435086 ${jetty.base}/resources not on classpath when using + --module=resources + + 435088 lib/npn packaging of jetty-distribution is off + + 435206 Can't add Cookie header on websocket ClientUpgradeRequest + + 435217 Remove deprecated TagLibConfiguration + + 435223 High cpu usage in + FCGIHttpParser.parseContent(ResponseContentParser.java:314). + + 435338 Incorrect handling of asynchronous content. + + 435412 Make AbstractSession.access() more amenable to customization + +jetty-9.2.0.RC0 - 15 May 2014 + + 419972 Support sending forms (application/x-www-form-urlencoded). + + 420368 Default content types for ContentProviders. + + 428966 Per-request cookie support. + + 430418 Jetty 9.1.3 and Chrome 33 permessage-deflate do not work together + + 431333 NPE In logging of WebSocket ExtensionConfig + + 432321 jetty-start / Allow defining extra start directories for common + configurations + + 432939 Jetty Client ContentResponse should have methods such as + getContentType() and getMediaType(). + + 433089 Client should provide Request.accept() method, like JAX-RS 2.0 + Invocation.Builder.accept(). + + 433405 Websocket Session.setMaxIdleTimeout fails with zero + + 433689 Evict old HttpDestinations from HttpClient. + + 434386 Request Dispatcher extracts args and prevents asyncIO. + + 434395 WebSocket / memory leak, WebSocketSession not cleaned up in abnormal + closure cases + + 434447 Able to create a session after a response.sendRedirect + + 434505 Allow property files on start.jar command line Signed-off-by: Tom + Zeller + + 434578 Complete listener not called if redirected to an invalid URI. + + 434679 Log static initialization via jetty-logging.properties fails + sometimes + + 434685 WebSocket read/parse does not discard remaining network buffer after + unrecoverable error case + + 434715 Avoid call to ServletHolder.getServlet() during handle() iff servlet + is available and instantiated + +jetty-9.2.0.M1 - 08 May 2014 + + 367680 jsp-file with load-on-startup not precompiled + + 404511 removed deprecated StringMap + + 409105 Upgrade jetty-osgi build/test to use more recent pax junit test + framework + + 424982 improved PID check in jetty.sh + + 425421 ContainerLifeCycle does not start added beans in started state + + 428904 Add logging of which webapp has path with uncovered http methods + + 431094 Consistent handling of utf8 decoding errors + + 431459 Jetty WebSocket compression extensions fails to handle big messages + properly + + 431519 Fixed NetworkTrafficListener + + 431642 Implement ProxyServlet using Servlet 3.1 async I/O. + + 432145 Pending request is not failed when HttpClient is stopped. + + 432270 Slow requests with response content delimited by EOF fail. + + 432321 jetty-start / Allow defining extra start directories for common + configurations + + 432468 Improve command CGI path handling + + 432473 web.xml declaration order of filters not preserved on calls to init() + + 432483 make osgi.serviceloader support for + javax.servlet.ServletContainerInitializer optional (cherry picked from + commit 31043d25708edbea9ef31948093f4eaf2247919b) + + 432528 IllegalStateException when using DeferredContentProvider. + + 432777 Async Write Loses Data with HTTPS Server. + + 432901 ensure a single onError callback only in pending and unready states + + 432993 Improve handling of ProxyTo and Prefix parameters in + ProxyServlet.Transparent. + + 433244 Security manager lifecycle cleanup + + 433262 WebSocket / Advanced close use cases + + 433365 No such servlet: + __org.eclipse.jetty.servlet.JspPropertyGroupServlet__ + + 433370 PATCH method does not work with ProxyServlet. + + 433431 Support ServletHandler fall through + + 433479 Improved resource javadoc + + 433483 sync log initialize + + 433512 Jetty throws RuntimeException when webapp compiled with jdk8 + -parameters + + 433563 Jetty fails to startup on windows - InvalidPathException + + 433572 default to sending date header + + 433656 Change to Opcode.ASM5 breaks jetty-osgi + + 433692 improved buffer resizing + + 433708 Improve WebAppClassLoader.addClassPath() IllegalStateException + message + + 433793 WebSocket / empty protocol list in ServerEndpointConfig.Configurator + when using non-exact header name + + 433841 Resource.newResource() declares an exception it does not throw + + 433849 FileResource string compare fix + + 433916 HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly. + + 434009 Improved javadoc for accessing HttpChannel and HttpConnection + + 434027 ReadListener.onError() not invoked in case of read failures. + + 434056 Support content consumed asynchronously. + + 434074 Avoid double dispatch by returning false from messageComplete + + 434077 AnnotatedServerEndpointTest emits strange exception + + 434247 Redirect loop in FastCGI proxying for HTTPS sites. + +jetty-8.1.15.v20140411 - 11 April 2014 + + 397167 Remote Access documentation is wrong + + 419799 complete after exceptions thrown from async error pages + + 420776 complete error pages after startAsync + + 421197 fix method comment and ensure close synchronized + + 422137 Added maxQueued to QueuedThreadPool MBean + + 424180 improve bad message errors + + 425038 WebSocketClient leaks file handles when exceptions are thrown from + open() + + 425551 Memory Leak in SelectConnector$ConnectTimeout.expired. + + 426658 backport Bug 425930 to jetty-8 + + 427761 allow endpoints to be interrupted + + 428708 JDBCSessionIdManager when clearing expired sessions failed, jetty + should still be able to startup + + 428710 JDBCSession(Id)Manager use 'read committed isolation level' + + 430968 Use wrapped response with async dispatch + + 432452 ConnectHandler does not timeout sockets in FIN_WAIT2. + +jetty-7.6.15.v20140411 - 11 April 2014 + + 422137 Added maxQueued to QueuedThreadPool MBean + + 425038 WebSocketClient leaks file handles when exceptions are thrown from + open() + + 425551 Memory Leak in SelectConnector$ConnectTimeout.expired. + + 432452 ConnectHandler does not timeout sockets in FIN_WAIT2. + +jetty-9.2.0.M0 - 09 April 2014 + + 419801 Upgrade to asm5 for jdk8 + + 423392 Fix buffer overflow in AsyncGzipFilter + + 425736 jetty-start / Jetty 9 fails to startup with --exec option if Java + path contain + + 426920 jetty-start / BaseHome.listFilesRegex() and .recurseDir() do not + detect filesystem loops + + 427188 Re-enable automatic detection of logging-dependencies with + logging-module + + 429734 Implemented the HA ProxyProtocol + + 430341 use apache jsp/jstl for maven plugins + + 430747 jetty-start / Allow --lib and module [lib] to recursively add jars + + 430825 jetty-start / use of jetty-jmx.xml prevents configuration of + ThreadPool in jetty.xml + + 431279 jetty-start / Unable to start jetty if no properties are defined. + + 431892 DefaultFileLocatorHelper.getBundleInstallLocation fails for equinox + 3.10 + + 432122 ignore frequently failing test + + 432145 Pending request is not failed when HttpClient is stopped. + + 432270 Slow requests with response content delimited by EOF fail. + +jetty-9.1.5.v20140505 - 05 May 2014 + + 431459 Jetty WebSocket compression extensions fails to handle big messages + properly + + 431519 Fixed NetworkTrafficListener + + 432145 Pending request is not failed when HttpClient is stopped. + + 432270 Slow requests with response content delimited by EOF fail. + + 432473 web.xml declaration order of filters not preserved on calls to init() + + 432483 make osgi.serviceloader support for + javax.servlet.ServletContainerInitializer optional (cherry picked from + commit 31043d25708edbea9ef31948093f4eaf2247919b) + + 432528 IllegalStateException when using DeferredContentProvider. + + 432777 Async Write Loses Data with HTTPS Server. + + 432901 ensure a single onError callback only in pending and unready states + + 432993 Improve handling of ProxyTo and Prefix parameters in + ProxyServlet.Transparent. + + 433365 No such servlet: + __org.eclipse.jetty.servlet.JspPropertyGroupServlet__ (cherry picked from + commit e2ed934978b958d6fccb28a8a5d04768f7c0432d) + + 433370 PATCH method does not work with ProxyServlet. + + 433483 sync log initialize + + 433692 improved buffer resizing + + 433916 HttpChannelOverHttp handles HTTP 1.0 connection reuse incorrectly. + + 434027 ReadListener.onError() not invoked in case of read failures. + +jetty-9.1.4.v20140401 - 01 April 2014 + + 414206 Rewrite rules re-encode requestURI + + 414885 Don't expose JDT classes by default + + 417022 Access current HttpConnection from Request not ThreadLocal + + 423619 set Request timestamp on startRequest + + 423982 removed duplicate UrlResource toString + + 424107 Jetty should not finish chunked encoding on exception. + + 425991 added qml mime type + + 426897 improved ContainerLifeCycle javadoc + + 427185 Add org.objectweb.asm. as serverClass + + 427204 jetty-start / startup incorrectly requires directory in jetty.base + + 427368 start.sh fails quietly on command line error + + 428594 File upload with onMessage and InputStream fails + + 428595 JSR-356 / ClientContainer does not support SSL + + 428597 javax-websocket-client-impl and javax-websocket-server-impl jars + Manifests do not export packages for OSGI + + 428817 jetty-start / Allow for property to configure deploy manager + `webapps` directory + + 429180 Make requestlog filename parameterized + + 429357 JDBCSessionManager.Session.removeAttribute don't set dirty flag if + attribute already removed + + 429409 osgi] jetty.websocket.servlet must import jetty.websocket.server + + 429487 Runner code cleanups + + 429616 Use UTF-8 encoding for XML + + 429779 masked zero length websocket frame gives NullPointerException during + streaming read + + 430088 OnMessage*Callable decoding of streaming binary or text is not thread + safe + + 430242 added SharedBlockingCallback to support threadsafe blocking + + 430273 Cancel async timeout breaks volatile link to avoid race with slow + expire + + 430341 add apache jsp and jstl optional modules + + 430490 Added JETTY_SHELL 426738 Fixed JETTY_HOME comments + + 430649 test form encoding + + 430654 closing client connections can hang worker threads. + + 430808 OutputStreamContentProvider violates OutputStream contract. + + 430822 jetty-start / make soLingerTime configurable via property + + 430823 jetty-start / make NeedClientAuth (ssl) configurable via property + + 430824 jetty-start / use of jetty-logging.xml prevents configuration of + ThreadPool in jetty.xml + + 431103 Complete listener not called if request times out before processing + exchange. + + 431592 do not resolved forwarded-for address + +jetty-9.1.3.v20140225 - 25 February 2014 + + 373952 Ensure MongoSessionManager un/binds session attributes on refresh + only if necessary + + 424899 Initialize GzipHandler mimeTypes + + 426490 HttpServletResponse.setBufferSize(0) results in tight loop (100% cpu + hog) + + 427700 Outgoing extensions that create multiple frames should flush them in + order and atomically. + + 427738 fixed XSS in async-rest demo + + 428157 Methods of anonymous inner classes can't be called via xml + + 428232 Rework batch mode / buffering in websocket. + + 428238 Test HEAD request with async IO + + 428266 HttpRequest mangles URI query string. + + 428383 limit white space between requests + + 428418 JettyStopMojo prints some messages on System.err + + 428435 Large streaming message fails in MessageWriter. + + 428660 Delay closing async HttpOutput until after UNREADY->READY + + 428710 JDBCSession(Id)Manager use read committed isolation level + + 428859 Do not auto initialise jsr356 websocket if no annotations or + EndPoints discovered + +jetty-9.1.2.v20140210 - 10 February 2014 + + 408167 Complex object as session attribute not necessarily persisted. + + 423421 remove org.slf4j and org.ow2.asm from jetty-all artifact + + 424171 Old javax.activation jar interferes with email sending + + 424562 JDBCSessionManager.setNodeIdInSessionId(true) does not work + + 425275 + org.eclipse.jetty.osgi.annotations.AnnotationConfiguration.BundleParserTask.getStatistic() + returns null when debug is enabled. + + 425638 Fixed monitor module/xml typos + + 425696 start.jar --add-to-start={module} results in error + + 425703 Review [Queued]HttpInput. + + 425837 Upgrade to jstl 1.2.2 + + 425930 JDBC Session Manager constantly reloading session if save intervall + expired once + + 425998 JDBCSessionIdManager fails to create maxinterval column + + 426250 jetty-all should be deployed on release + + 426358 NPE generating temp dir name if no resourceBase or war + + 426481 fix < java 1.7.0_10 npn files + + 426739 Response with Connection: keep-alive truncated. + + 426750 isReady() returns true at EOF + + 426870 HTTP 1.0 Request with Connection: keep-alive and response content + hangs. + + 427068 ServletContext.getClassLoader should only check privileges if a + SecurityManager exists + + 427128 Cookies are not sent to the server. + + 427245 StackOverflowError when session cannot be de-idled from disk + + 427254 Cookies are not sent to the client. + + 427512 ReadPendingException in case of HTTP Proxy tunnelling. + + 427570 externalize common http config to start.ini + + 427572 Default number of acceptors too big. + + 427587 MessageInputStream must copy the payload. + + 427588 WebSocket Parser leaks ByteBuffers. + + 427690 Remove Mux Extension and related support. + + 427699 WebSocket upgrade response sends Sec-WebSocket-Protocol twice. + +jetty-9.1.1.v20140108 - 08 January 2014 + + 408912 JDBCSessionIdManager should allow configuration of schema + + 410750 NPE Protection in Mongo save session + + 417202 Start / command line arguments with ${variable} should be expanded + + 418622 WebSocket / When rejecting old WebSocket protocols, log client + details + + 418769 Allow resourceBases in run-forked Mojo + + 418888 Added strict mode to HttpGenerator + + 419309 encode alias URIs from File.toURI + + 419911 Empty chunk causes ArrayIndexOutOfBoundsException in + InputStreamResponseListener. + + 421189 WebSocket / AbstractExtension's WebSocketPolicy is not + Session-specific + + 421314 Websocket / Connect attempt with Chrome 32+ fails with "Some + extension already uses the compress bit" + + 421697 IteratingCallback improvements + + 421775 CookiePatternRule only sets cookie if not set already + + 421794 Iterator from InputStreamProvider is not implemented properly. + + 421795 ContentProvider should have a method to release resources. + + 422192 ClientContainer.getOpenSessions() always returns null + + 422264 OutputStreamContentProvider does not work with Basic Authentication. + + 422308 Change all session/sessionid managers to use shared Scheduler + + 422386 Comma-separated s not trimmed in GzipFilter + + 422388 Test for GzipFilter apply to resources with charset appended to the + MIME type + + 422398 moved jmx remote config to jmx-remote.mod + + 422427 improved TestConnection + + 422703 Support reentrant HttpChannel and HttpConnection + + 422723 Dispatch failed callbacks to avoid blocking selector + + 422734 messages per second in ConnectorStatistics + + 422807 fragment large written byte arrays to protect from JVM OOM bug + + 423005 reuse gzipfilter buffers + + 423048 Receiving a PING while sending a message kills the connection + + 423060 Allow ${jetty.base}/work + + 423118 ServletUpgradeRequest.getUserPrincipal() does not work + + 423185 Update permessage-deflate for finalized spec + + 423255 MBeans of SessionIdManager can leak memory on redeploy + + 423361 Ensure ServletContainerInitializers called before injecting Listeners + + 423373 Correct namespace use for JEE7 Schemas + + 423392 GzipFilter without wrapping or blocking + + 423395 Ensure @WebListeners are injected + + 423397 Jetty server does not run on Linux server startup because of a bug + in jetty.sh script. + + 423476 WebSocket / JSR / @OnMessage(maxMessageSize=20000000) not properly + supported + + 423556 HttpSessionIdListener should be resource injectable + + 423646 WebSocket / JSR / WebSocketContainer (Client) should have its + LifeCycle stop on standalone use + + 423692 use UrlEncoded.ENCODING for merging forwarded query strings + + 423695 Horizontal-tab used as HTTP Header Field separator unsupported + + 423724 WebSocket / Rename MessageAppender.appendMessage to .appendFrame + + 423739 Start checks module files. + + 423804 WebSocket / JSR improper use of + ServerEndpointConfig.Configurator.getNegotiatedSubprotocol() + + 423875 Update jetty-distro build to use jetty-toolchain jetty-schemas 3.1.M0 + + 423915 WebSocket / Active connection from IOS that goes into airplane mode + not disconnected on server side + + 423926 Remove code duplication in class IdleTimeout. + + 423930 SPDY streams are leaked. + + 423948 Cleanup and consolidate testing utilities in WebSocket + + 424014 PathContentProvider does not close its internal SeekableByteChannel. + + 424043 IteratingCallback Idle race. + + 424051 Using --list-config can result in NPE + + 424168 Module [ext] should load libraries recursively from lib/ext/ + + 424180 extensible bad message content + + 424183 Start does not find LIB (Classpath) when on non-English locale + + 424284 Identify conflicts in logging when error "Multiple servlets map to + {pathspec}" occurs + + 424303 @ServletSecurity not applied on non load-on-startup servlets + + 424307 obfuscate unicode + + 424380 Augment class / Jar scanning timing log events + + 424390 Allow enabling modules via regex + + 424398 Servlet load-on-startup ordering is not obeyed + + 424497 Allow concurrent async sends + + 424498 made bytebufferendpoint threadsafe + + 424588 org.eclipse.jetty.ant.AntWebInfConfiguration does not add + WEB-INF/classes for annotation scanning + + 424598 Module [npn] downloads wrong npn jar + + 424651 org.eclipse.jetty.spdy.Flusher use of non-growable ArrayQueue yield + java.lang.IllegalStateException: Full. + + 424682 Session cannot be deserialized with form authentication + + 424706 The setMaxIdleTimeout of javax.websocket.Session does not take any + affect + + 424734 WebSocket / Expose Locale information from ServletUpgradeRequest + + 424735 WebSocket / Make ServletUpgradeRequest expose its HttpServletRequest + + 424743 Verify abort behavior in case the total timeout expires before the + connect timeout. + + 424762 ShutdownHandler hardcodes "127.0.0.1" and cannot be used with IPv6 + + 424847 Deadlock in deflate-frame (webkit binary) + + 424863 IllegalStateException "Unable to find decoder for type + " + + 425038 WebSocketClient leaks file handles when exceptions are thrown from + open() + + 425043 Track whether pools are used correctly. + + 425049 add json mime mapping to mime.properties. + +jetty-9.1.0.v20131115 - 15 November 2013 + + 397167 Remote Access documentation is wrong + + 416477 QueuedThreadPool does not reuse interrupted threads + + 420776 complete error pages after startAsync + + 421362 When using the jetty.osgi.boot ContextHandler service feature the + wrong ContextHandler can be undeployed + +jetty-9.1.0.RC2 - 07 November 2013 + + 410656 WebSocketSession.suspend() hardcoded to return null + + 417223 removed deprecated ThreadPool.dispatch + + 418741 Threadlocal cookie buffer in response + + 420359 fixed thread warnings + + 420572 IOTest explicitly uses 127.0.0.1 + + 420692 set soTimeout to try to avoid hang + + 420844 Connection:close on exceptional errors + + 420930 Use Charset to specify character encoding + + 421197 synchronize gzip output finish + + 421198 onComplete never call onComplete in BufferingResponseListener in 9.1. + +jetty-9.0.7.v20131107 - 07 November 2013 + + 407716 fixed logs + + 416597 Allow classes and jars on the webappcontext extraclasspath to be + scanned for annotations by jetty-maven-plugin + + 418636 Name anonymous filter and holders with classname-hashcode + + 418732 Add whiteListByPath mode to IPAccessHandler + + 418767 run-forked goal ingores test scope dependencies with + useTestScope=true + + 418792 Session getProtocolVersion always returns null + + 418892 SSL session caching so unreliable it effectively does not work. + + 419309 Added symlink checker to test webapp + + 419333 treat // as an alias in path + + 419344 NPNServerConnection does not close the EndPoint if it reads -1. + + 419350 Do not borrow space from passed arrays + + 419655 AnnotationParser throws NullPointerException when scanning files from + jar:file urls + + 419687 HttpClient's query parameters must be case sensitive. + + 419799 Async timeout dispatches to error page + + 419814 Annotation properties maxMessageSize and inputBufferSize don't work + + 419846 JDBCSessionManager doesn't determine dirty state correctly + + 419901 Client always adds extra user-agent header. + + 419937 Request isSecure cleared on recycle + + 419950 Provide constructor for StringContentProvider that takes Charset. + + 419964 InputStreamContentProvider does not close provided InputStream. + + 420033 AsyncContext.onTimeout exceptions passed to onError + + 420039 BufferingResponseListener continues processing after aborting + request. + + 420048 DefaultServlet alias checks configured resourceBase + + 420142 reimplemented graceful shutdown + + 420362 Response/request listeners called too many times. + + 420374 Call super.close() in a finally block + + 420530 AbstractLoginModule never fails a login + + 420572 IOTest explicitly uses 127.0.0.1 + + 420776 complete error pages after startAsync + + 420844 Connection:close on exceptional errors + + 420930 Use Charset to specify character encoding + + 421197 synchronize gzip output finish + +jetty-8.1.14.v20131031 - 31 October 2013 + + 417772 fixed low resources idle timeout + + 418636 Name anonymous filter and holders with classname-hashcode + + 419432 Allow to override the SslContextFactory on a per-destination basis. + + 420048 DefaultServlet alias checks configured resourceBase + + 420530 AbstractLoginModule never fails a login + +jetty-7.6.14.v20131031 - 31 October 2013 + + 417772 fixed low resources idle timeout + + 418636 Name anonymous filter and holders with classname-hashcode + + 419432 Allow to override the SslContextFactory on a per-destination basis. + + 420048 DefaultServlet alias checks configured resourceBase + + 420530 AbstractLoginModule never fails a login + +jetty-9.1.0.RC1 - 31 October 2013 + + 294531 Unpacking webapp twice to the same directory name causes problems + with updated jars in WEB-INF/lib + + 397049 Cannot Provide Custom Credential to JDBCLoginService + + 403591 improve the Blocking Q implementation. + + 407716 fixed logs + + 410840 Change SSLSession.getPeerCertificateChain() to + SSLSession.getPeerCertificates(). + + 415118 WebAppClassLoader.getResource(name) should strip .class from name + + 415609 spdy replace SessionInvoker with IteratingCallback. Introduce Flusher + class to separate queuing/flushing logic from StandardSession + + 416300 Order ServletContainerInitializer callbacks + + 416597 Allow classes and jars on the webappcontext extraclasspath to be + scanned for annotations by jetty-maven-plugin + + 417356 Add SOCKS support to jetty client. + + 417932 resources.mod should make ${jetty.base}/resources/ directory + + 417933 logging.mod ini template should include commented log.class settings + + 418212 org.eclipse.jetty.spdy.server.http.SSLExternalServerTest hangs. + + 418441 Use of OPTIONS= in Jetty 9.1 should display WARNING message + + 418596 Faults in JARs during class scanning should report the jar that + caused the problem + + 418603 cannot specify a custom ServerEndpointConfig.Configurator + + 418625 WebSocket / Jsr RemoteEndpoint.sendObject(java.nio.HeapByteBuffer) + doesn't find encoder + + 418632 WebSocket / Jsr annotated @OnMessage with InputStream fails to be + called + + 418636 Name anonymous filter and holders with classname-hashcode + + 418732 Add whiteListByPath mode to IPAccessHandler + + 418767 run-forked goal ingores test scope dependencies with + useTestScope=true + + 418792 Session getProtocolVersion always returns null + + 418892 SSL session caching so unreliable it effectively does not work. + + 418922 Missing parameterization of etc/jetty-xinetd.xml + + 418923 Missing parameterization of etc/jetty-proxy.xml + + 419146 Parameterize etc/jetty-requestlog.xml values + + 419309 Added symlink checker to test webapp + + 419330 Allow access to setters on jetty-jspc-maven-plugin + + 419333 treat // as an alias in path + + 419344 NPNServerConnection does not close the EndPoint if it reads -1. + + 419350 Do not borrow space from passed arrays + + 419655 AnnotationParser throws NullPointerException when scanning files from + jar:file urls + + 419687 HttpClient's query parameters must be case sensitive. + + 419799 Async timeout dispatches to error page + + 419814 Annotation properties maxMessageSize and inputBufferSize don't work + + 419846 JDBCSessionManager doesn't determine dirty state correctly + + 419899 Do not wrap SSL Exception as EoFException + + 419901 Client always adds extra user-agent header. + + 419904 Data corruption on proxy PUT requests. + + 419914 QueuedThreadPool uses nanoTime + + 419937 Request isSecure cleared on recycle + + 419950 Provide constructor for StringContentProvider that takes Charset. + + 419964 InputStreamContentProvider does not close provided InputStream. + + 420012 Improve ProxyServlet.Transparent configuration in case prefix="/". + + 420033 AsyncContext.onTimeout exceptions passed to onError + + 420034 Removed threads/timers from Date caching + + 420039 BufferingResponseListener continues processing after aborting + request. + + 420048 DefaultServlet alias checks configured resourceBase + + 420103 Split out jmx-remote module from existing jmx module + + 420142 reimplemented graceful shutdown + + 420362 Response/request listeners called too many times. + + 420364 Bad synchronization in HttpConversation. + + 420374 Call super.close() in a finally block + + 420530 AbstractLoginModule never fails a login + + 420687 XML errors in jetty-plus/src/test/resources/web-fragment-*.xml + + 420776 complete error pages after startAsync + +jetty-9.1.0.RC0 - 30 September 2013 + + 412469 make module for jetty-jaspi + + 416453 Add comments to embedded SplitFileServer example + + 416577 enhanced shutdown handler to send shutdown at startup + + 416674 run all jetty-ant tests on random ports + + 416940 avoid download of spring-beans.dtd + + 417152 WebSocket / Do all setup in websocket specific + ServletContainerInitializer + + 417239 re-implemented Request.getContentRead() + + 417284 Precompiled regex in HttpField + + 417289 SPDY replace use of direct buffers with indirect buffers or make it + configurable + + 417340 Upgrade JDT compiler to one that supports source/target of Java 1.7 + + 417382 Upgrade to asm 4.1 and refactor annotation parsing + + 417475 Do not null context Trie during dynamic deploy + + 417490 WebSocket / @PathParam annotated parameters are null when the servlet + mapping uses a wildcard + + 417561 Refactor annotation related code: change log messages + + 417574 Setting options with _JAVA_OPTIONS breaks run-forked with + true + + 417831 Remove jetty-logging.properties from distro/resources + + 417938 Startup / Sort properties presented in --list-config alphabetically + + 418014 Handle NTFS canonical exceptions during alias check + + 418068 WebSocketClient has lazy or injected Executor + + 418212 org.eclipse.jetty.spdy.server.http.SSLExternalServerTest hangs + + 418227 Null cookie value test + +jetty-9.0.6.v20130930 - 30 September 2013 + + 411069 better set compiler defaults to 1.7, including webdefault.xml for jsp + + 411934 War overlay configuration assumes src/main/webapp exists + + 413484 setAttribute in nosql session management better handles _dirty status + + 413684 deprecated unsafe alias checkers + + 413737 hide stacktrace in ReferrerPushStrategyTest + + 414431 Avoid debug NPE race + + 414898 Only upgrade v0 to v1 cookies on dquote , ; backslash space and tab + in the value + + 415192 maps to JspPropertyGroupServlet instead of JspServlet + + 415194 Deployer gives management of context to context collection + + 415302 + + 415330 Avoid multiple callbacks at EOF + + 415401 Add initalizeDefaults call to SpringConfigurationProcessor + + 415548 migrate ProxyHTTPToSPDYTest to use HttpClient to avoid intermittent + NPE part 2 + + 415605 fix status code logging for async requests + + 415999 Fix some of FindBugs warnings + + 416015 Handle null Accept-Language and other headers + + 416096 DefaultServlet leaves open file descriptors with file sizes greater + than response buffer + + 416102 Clean up of async sendContent process + + 416103 Added AllowSymLinkAliasChecker.java + + 416251 ProxyHTTPToSPDYConnection now sends a 502 to the client if it + receives a rst frame from the upstream spdy server + + 416266 HttpServletResponse.encodeURL() encodes on first request when only + SessionTrackingMode.COOKIE is used + + 416314 jetty async client wrong behaviour for HEAD Method + Redirect. + + 416321 handle failure during blocked committing write + + 416453 Add comments to embedded SplitFileServer example + + 416477 Improved consumeAll error handling + + 416568 Simplified servlet exception logging + + 416577 enhanced shutdown handler to send shutdown at startup + + 416585 WebInfConfiguration examines webapp classloader first instead of its + parent when looking for container jars + + 416597 Allow classes and jars on the webappcontext extraclasspath to be + scanned for annotations + + 416663 Content-length set by resourcehandler + + 416674 run all jetty-ant tests on random ports + + 416679 Change warning to debug if no transaction manager present + + 416787 StringIndexOutOfBounds with a pathMap of "" + + 416940 avoid download of spring-beans.dtd + + 416990 JMX names statically unique + + 417110 Demo / html body end tag missing in authfail.html + + 417225 added Container.addEventListener method + + 417260 Protected targets matched as true URI path segments + + 417289 SPDY replace use of direct buffers with indirect buffers or make it + configurable + + 417475 Do not null context Trie during dynamic deploy + + 417574 Setting options with _JAVA_OPTIONS breaks run-forked with + true + + 417831 Remove jetty-logging.properties from distro/resources + + 418014 Handle NTFS canonical exceptions during alias check + + 418212 org.eclipse.jetty.spdy.server.http.SSLExternalServerTest hangs + + 418227 Null cookie value test + +jetty-9.1.0.M0 - 16 September 2013 + + 393473 Add support for JSR-356 (javax.websocket) draft + + 395444 Websockets not working with Chrome (deflate problem) + + 396562 Add an implementation of RequestLog that supports Slf4j + + 398467 Servlet 3.1 Non Blocking IO + + 402984 WebSocket Upgrade must honor case insensitive header fields in + upgrade request + + 403280 Update to javax.el 2.2.4 + + 403380 Introduce WebSocketTimeoutException to differentiate between EOF on + write and Timeout + + 403510 HttpSession maxInactiveInterval is not serialized in HashSession + + 403591 do not use the ConcurrentArrayBlockingQueue for thread pool, selector + and async request log + + 403817 Use of WebSocket Session.close() results in invalid status code + + 405188 HTTP 1.0 with GET returns internal IP address. + + 405422 Implement servlet3.1 spec sections 4.4.3 and 8.1.4 for new + HttpSessionIdListener class + + 405432 Check implementation of section 13.4.1 @ServletSecurity for + @HttpConstraint and HttpMethodConstraint clarifications + + 405435 Implement servlet3.1 section 13.6.3 for 303 redirects for Form auth + + 405437 Implement section 13.8.4 Uncovered HTTP methods + + 405525 Throw IllegalArgumentException if filter or servlet name is null or + empty string in ServletContext.addXXX() methods + + 405526 Deployment must fail if more than 1 servlet maps to same url pattern + + 405531 Implement Part.getSubmittedFileName() + + 405533 Implement special role ** for security constraints + + 405535 Implement Request.isUserInRole(role) check security-role-refs + defaulting to security-role if no matching ref + + 405944 Check annotation and resource injection is supported for + AsyncListener + + 406759 supressed stacktrace in ReferrerPushStrategyTest + + 407708 HttpUpgradeHandler must support injection + + 408782 Transparent Proxy - rewrite URL is ignoring query strings. + + 408904 Enhance CommandlineBuilder to not escape strings inside single quotes + + 409403 fix IllegalStateException when SPDY is used and the response is + written through BufferUtil.writeTo byte by byte + + 409796 fix and cleanup ReferrerPushStrategy. There's more work to do here, + so it remains @Ignore for now + + 409953 return buffer.slice() instead of buffer.asReadOnlyBuffer() in + ResourceCache to avoid using inefficent path in BufferUtil.writeTo + + 410083 Jetty clients submits incomplete URL to proxy. + + 410098 inject accept-encoding header for all http requests through SPDY as + SPDY clients MUST support spdy. Also remove two new tests that have been to + implementation agnostic and not needed anymore due to recent code changes + + 410246 HttpClient with proxy does not tunnel HTTPS requests. + + 410341 suppress stacktraces that happen during test setup shutdown after + successful test run + + 410800 Make RewritePatternRule queryString aware + + 411069 better set compiler defaults to 1.7, including webdefault.xml for jsp + + 411934 War overlay configuration assumes src/main/webapp exists + + 412205 SSL handshake failure leads to unresponsive UpgradeConnection + + 412418 HttpTransportOverSPDY fix race condition while sending push streams + that could cause push data not to be sent. Fixes intermittent test issues in + ReferrerPushStrategyTest + + 412729 SPDYClient needs a Promise-based connect() method. + + 412829 Allow any mappings from web-default.xml to be overridden by web.xml + + 412830 Error Page match ServletException then root cause + + 412840 remove Future in SPDYClient.connect() and return Session instead in + blocking version + + 412934 Ignore any re-definition of an init-param within a descriptor + + 412935 setLocale is not an explicit set of character encoding + + 412940 minor threadsafe fixes + + 413018 ServletContext.addListener() should throw IllegalArgumentException if + arg is not correct type of listener + + 413020 Second call to HttpSession.invalidate() should throw exception 413019 + HttpSession.getCreateTime() should throw exception after session is + invalidated + + 413291 Avoid SPDY double dispatch + + 413387 onResponseHeaders is not called multiple times when multiple + redirects occur. + + 413484 setAttribute in nosql session management better handles _dirty status + + 413531 Introduce pluggable transports for HttpClient. + + 413684 deprecated unsafe alias checkers + + 413737 hide stacktrace in ReferrerPushStrategyTest + + 413901 isAsyncStarted remains true while original request is dispatched + + 414167 WebSocket handshake upgrade from FireFox fails due to keep-alive + + 414431 Avoid debug NPE race + + 414635 Modular start.d and jetty.base property + + 414640 HTTP header value encoding + + 414725 Annotation Scanning should exclude webapp basedir from path + validation checks + + 414731 Request.getCookies() should return null if there are no cookies + + 414740 Removed the parent peeking Loader + + 414891 Errors thrown by ReadListener and WriteListener not handled + correctly. + + 414898 Only upgrade v0 to v1 cookies on dquote , ; backslash space and tab + in the value + + 414913 WebSocket / Performance - reduce ByteBuffer allocation/copying during + generation/writing + + 414923 CompactPathRule needs to also compact the uri + + 415047 Create URIs lazily in HttpClient. + + 415062 SelectorManager wakeup optimisation. + + 415131 Avoid autoboxing on debug + + 415192 maps to JspPropertyGroupServlet instead of JspServlet + + 415194 Deployer gives management of context to context collection + + 415302 + + 415314 Jetty should not commit response on output if < + Response.setBufferSize() bytes are written + + 415330 Avoid multiple callbacks at EOF + + 415401 WebAppProvider: override XmlConfiguration.initializeDefaults + + 415548 migrate ProxyHTTPToSPDYTest to use HttpClient to avoid intermittent + NPE part 2 + + 415605 fix status code logging for async requests + + 415641 Remove remaining calls to deprecated HttpTranspoert.send + + 415656 SPDY - add IdleTimeout per Stream functionality + + 415744 Reduce Future usage in websocket + + 415745 Include followed by forward using a PrintWriter incurs unnecessary + delay + + 415780 fix StreamAlreadyCommittedException in spdy build + + 415825 fix stop support in modular start setup + + 415826 modules initialised with --add-to-start and --add-to-startd + + 415827 jetty-start / update --help text for new command line options + + 415830 jetty-start / add more TestUseCases for home + base + modules + configurations + + 415831 rename ini keyword from MODULES= to --module= + + 415832 jetty-start / fix ClassNotFound exception when starting from empty + base directory + + 415839 jetty-start / warning about need for --exec given when not needed by + default configuration + + 415899 jetty-start / add --lib= capability from Jetty 7/8 + + 415913 support bootlib and download in modules + + 415999 Fix some of FindBugs warnings + + 416015 Handle null Accept-Language and other headers + + 416026 improve error handlig in SPDY parsers + + 416096 DefaultServlet leaves open file descriptors with file sizes greater + than response buffer + + 416102 Clean up of async sendContent process + + 416103 Added AllowSymLinkAliasChecker.java + + 416143 mod file format uses [type] + + 416242 respect persistence headers in ProxyHTTPSPDYConnection + + 416251 ProxyHTTPToSPDYConnection now sends a 502 to the client if it + receives a rst frame from the upstream spdy server + + 416266 HttpServletResponse.encodeURL() encodes on first request when only + SessionTrackingMode.COOKIE is used + + 416314 jetty async client wrong behaviour for HEAD Method + Redirect. + + 416321 handle failure during blocked committing write + + 416477 Improved consumeAll error handling + + 416568 Simplified servlet exception logging + + 416585 WebInfConfiguration examines webapp classloader first instead of its + parent when looking for container jars + + 416597 Allow classes and jars on the webappcontext extraclasspath to be + scanned for annotations + + 416663 Content-length set by resourcehandler + + 416674 run all jetty-ant tests on random ports + + 416679 Change warning to debug if no transaction manager present + + 416680 remove uncovered constraint warning + + 416681 Remove unnecessary security constraints in test-jetty-webapp + + 416763 WebSocket / Jsr Session.getPathParameters() is empty + + 416764 WebSocket / Jsr Session.getRequestURI() is missing scheme + host + + port + query parameters + + 416787 StringIndexOutOfBounds with a pathMap of "" + + 416812 Don't start WebSocketClient for every context + + 416990 JMX names statically unique + + 417022 Request attribute access to Server,HttpChannel & HttpConnection + + 417023 Add Default404Servlet if no default servlet set + + 417108 demo-base uses HTTPS + + 417109 Demo / Jaas test fails to find etc/login.conf + + 417110 Demo / html body end tag missing in authfail.html + + 417111 Demo / login with admin/admin fails + + 417133 WebSocket / deflate-frame should accumulate decompress byte buffers + properly + + 417134 WebSocket / Jsr + ServerEndpointConfig.Configurator.getNegotiatedExtensions() is never used + + 417225 added Container.addEventListener method + + 417260 Protected targets matched as true URI path segments + +jetty-8.1.13.v20130916 - 16 September 2013 + + 412629 PropertyFileLoginModule doesn't cache user configuration file even + for refreshInterval=0 + + 413484 setAttribute in nosql session management better handles _dirty status + + 413684 deprecated unsafe alias checkers + + 414235 RequestLogHandler configured on a context fails to handle forwarded + requests + + 414393 StringIndexOutofBoundsException with > 8k multipart content without + CR or LF + + 414431 Avoid debug NPE race + + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking + for hidden dirnames + + 414652 WebSocket's sendMessage() may hang on congested connections. + + 415192 maps to JspPropertyGroupServlet instead of JspServlet + + 415401 Add XmlConfiguration.initializeDefaults that allows to set default + values for any XmlConfiguration that may be overridden in the config file + + 416266 HttpServletResponse.encodeURL() encodes on first request when only + SessionTrackingMode.COOKIE is used + + 416585 WebInfConfiguration examines webapp classloader first instead of its + parent when looking for container jars + + 416787 StringIndexOutOfBounds with a pathMap of "" + + 416990 JMX names statically unique + +jetty-7.6.13.v20130916 - 16 September 2013 + + 412629 PropertyFileLoginModule doesn't cache user configuration file even + for refreshInterval=0 + + 413484 setAttribute in nosql session management better handles _dirty status + + 413684 deprecated unsafe alias checkers + + 414235 RequestLogHandler configured on a context fails to handle forwarded + requests + + 414393 StringIndexOutofBoundsException with > 8k multipart content without + CR or LF + + 414431 Avoid debug NPE race + + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking + for hidden dirnames + + 414652 WebSocket's sendMessage() may hang on congested connections. + + 415192 maps to JspPropertyGroupServlet instead of JspServlet + + 415401 Add XmlConfiguration.initializeDefaults that allows to set default + values for any XmlConfiguration that may be overridden in the config file + + 416585 WebInfConfiguration examines webapp classloader first instead of its + parent when looking for container jars + + 416990 JMX names statically unique + +jetty-9.0.5.v20130815 - 15 August 2013 + + 414898 Only upgrade v0 to v1 cookies on dquote , ; backslash space and tab + in the value + + 404468 Ported jetty-http-spi to Jetty-9 + + 405424 add X-Powered-By and Server header to SPDY + + 405535 implement Request.isUserInRole(role) check security-role-refs + defaulting to security-role if no matching ref + + 408235 SPDYtoHTTP proxy fix: remove hop headers from upstream server + + 409028 Jetty HttpClient does not work with proxy CONNECT method. + + 409282 fix intermittently failing MaxConcurrentStreamTest + + 409845 add test that makes sure that DataFrameGenerator correctly prepends + the header information + + 410498 ignore type of exception in + GoAwayTest.testDataNotProcessedAfterGoAway + + 410668 HTTP client should support the PATCH method. + + 410800 Make RewritePatternRule queryString aware + + 410805 StandardSession: remove all frameBytes for a given stream from queue + if the stream is reset + + 411216 RequestLogHandler handles async completion + + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued + parameters 411459 MultiPartFilter.Wrapper getParameter should use charset + encoding of part + + 411538 Use Replacement character for bad parameter % encodings + + 411545 SslConnection.DecryptedEndpoint.fill() sometimes misses a few network + bytes + + 411755 MultiPartInputStreamParser fails on base64 encoded content + + 411844 ArrayIndexOutOfBoundsException on wild URL. + + 411909 GzipFilter flushbuffer() results in erroneous finish() call + + 412234 fix bug where NetworkTrafficSelectChannelEndpoint counted bytes wrong + on incomplete writes + + 412318 HttpChannel fix multiple calls to _transport.completed() if handle() + is called multiple times while the channel is COMPLETED + + 412418 HttpTransportOverSPDY fix race condition while sending push streams + that could cause push data not to be sent. Fixes intermittent test issues in + ReferrerPushStrategyTest + + 412442 Avoid connection timeout after FIN-FIN close + + 412466 Improved search for unset JETTY_HOME + + 412608 EOF Chunk not sent on inputstream static content + + 412629 PropertyFileLoginModule doesn't cache user configuration file even + for refreshInterval=0 + + 412637 ShutdownMonitorThread already started + + 412712 HttpClient does not send the terminal chunk after partial writes. + + 412713 add dumpOnStart configuration to jetty-maven-plugin + + 412750 HttpClient close expired connections fix + + 412814 HttpClient calling CompleteListener.onComplete() twice. + + 412846 jetty Http Client Connection through Proxy is failing with Timeout. + + 412938 Request.setCharacterEncoding now throws UnsupportedEncodingException + instead of UnsupportedCharsetException + + 413034 Multiple webapps redeploy returns NamingException with AppDynamics + javaagent + + 413066 accept lower case method: head + + 413108 HttpClient hardcodes dispatchIO=false when using SSL. + + 413113 Inconsistent Request.getURI() when adding parameters via + Request.param(). + + 413154 ContextHandlerCollection defers virtual host handling to + ContextHandler + + 413155 HttpTransportOverSPDY remove constructor argument for version and get + version from stream.getSession instead + + 413371 Default JSON.Converters for List and Set. + + 413372 JSON Enum uses name rather than toString() + + 413393 better logging of bad URLs in Resources + + 413486 SessionCookieConfig setters should throw IllegalStateException if + called after context started + + 413568 Made AJP worker name generic + + 413684 Trailing slash shows JSP source + + 413901 isAsyncStarted remains true while original request is dispatched + + 414085 Add jetty-continuations to plugin dependencies + + 414101 Do not escape special characters in cookies + + 414235 RequestLogHandler configured on a context fails to handle forwarded + requests + + 414393 StringIndexOutofBoundsException with > 8k multipart content without + CR or LF + + 414449 Added HttpParser strict mode for case sensitivity + + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking + for hidden dirnames + + 414625 final static version fields + + 414640 HTTP header value encoding + + 414652 WebSocket's sendMessage() may hang on congested connections. + + 414727 Ensure asynchronously flushed resources are closed + + 414763 Added org.eclipse.jetty.util.log.stderr.ESCAPE option + + 414833 HttpSessionListener.destroy must be invoked in reverse order + + 414840 Request.login() throws NPE if username is null + + 414951 QueuedThreadPool fix constructor that missed to pass the idleTimeout + + 414972 HttpClient may read bytes with pre-tunnelled connection. + +jetty-9.0.4.v20130625 - 25 June 2013 + + 396706 CGI support parameters + + 397051 Make JDBCLoginService data members protected to facilitate + subclassing + + 397193 MongoSessionManager refresh updates last access time + + 398467 Servlet 3.1 Non Blocking IO + + 400503 WebSocket - squelch legitimate Exceptions during testing to avoid + false positives + + 401027 javadoc JMX annotations + + 404508 enable overlay deployer + + 405188 HTTP 1.0 with GET returns internal IP address. + + 405313 Websocket client SSL hostname verification is broken, always defaults + to raw IP as String + + 406759 supressed stacktrace in ReferrerPushStrategyTest + + 406923 Accept CRLF or LF but not CR as line termination + + 407246 Test harness checked results in callbacks ignored. + + 407325 Test Failure: + org.eclipse.jetty.servlets.EventSourceServletTest.testEncoding + + 407326 Test Failure: + org.eclipse.jetty.client.HttpClientStreamTest.testInputStreamResponseListenerFailedBeforeResponse[0]. + + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7 + + 407386 Cookies not copied in ServletWebSocketRequest + + 407469 Method parameters for @OnWebSocketError should support Throwable + + 407470 Javadoc for @OnWebSocketFrame incorrectly references WebSocketFrame + object + + 407491 Better handle empty Accept-Language + + 407614 added excludedMimeTypes to gzipFilter + + 407812 jetty-maven-plugin can not handle whitespaces in equivalent of + WEB-INF/classes paths + + 407931 Add toggle for failing on servlet availability + + 407976 JDBCSessionIdManager potentially leaves server in bad state after + startup + + 408077 HashSessionManager leaves file handles open after being stopped + + 408117 isAsyncStarted is false on redispatch + + 408118 NullPointerException when parsing request cookies + + 408167 JDBCSessionManager don't mark session as dirty if same attribute + value set + + 408281 Inconsistent start/stop handling in ContainerLifeCycle + + 408446 Multipart parsing issue with boundry and charset in ContentType + header + + 408529 Etags set in 304 response + + 408600 set correct jetty.url in all pom files + + 408642 setContentType from addHeader + + 408662 In pax-web servlet services requests even if init() has not finished + running + + 408709 refactor test-webapp's chat application. Now there's only a single + request for user login and initial chat message. + + 408720 NPE in AsyncContext.getRequest() + + 408723 Jetty Maven plugin reload ignores web.xml listeners + + 408768 JSTL jars not scanned by jetty-ant + + 408771 Problem with ShutdownMonitor for jetty-ant + + 408782 Transparent Proxy - rewrite URL is ignoring query strings. + + 408806 getParameter returns null on Multipart request if called before + request.getPart()/getParts() + + 408904 Enhance CommandlineBuilder to not escape strings inside single quotes + + 408909 GzipFilter setting of headers when reset and/or not compressed + + 408910 META-INF/jetty-webapp-context.xml file should be able to refer to + bundle-relative locations + + 408923 Need to be able to configure the ThreadPool for the default jetty + server in osgi + + 408945 XML Args ignored without DTD + + 409012 added reference to example rewrite rules + + 409133 Empty causes StackOverflowError + + 409228 Set jetty.home property so config files work even if deployed inside + a bundle + + 409403 fix IllegalStateException when SPDY is used and the response is + written through BufferUtil.writeTo byte by byte + + 409436 NPE on context restart using dynamic servlet registration + + 409441 jetty.xml threadpool arg injection + + 409449 Ensure servlets, filters and listeners added via dynamic + registration, annotations or descriptors are cleaned on context restarts + + 409545 Change HttpChannel contract + + 409556 Resource files not closed + + 409598 spdy: Fix NPE when a broken client tried to create duplicate stream + IDs + + 409684 Ids and properties not set for execution of jetty xml config files + with mvn plugin + + 409796 fix intermittent test issue in + ReferrerPushStrategy.testResourceOrder. Happened when the client got closed + before the server finished sending all data frames. Client waits now until + all data is received. + + 409801 Jetty should allow webdefault to be specified using a relative + location when running in OSGi + + 409842 Suspended request completed by a request thread does not set read + interest. + + 409953 return buffer.slice() instead of buffer.asReadOnlyBuffer() in + ResourceCache to avoid using inefficent path in BufferUtil.writeTo + + 409978 Websocket shouldn't create HttpSession if not present + + 410083 Jetty clients submits incomplete URL to proxy. + + 410098 inject accept-encoding header for all http requests through SPDY as + SPDY clients MUST support spdy. Also remove two new tests that have been to + implementation agnostic and not needed anymore due to recent code changes + + 410175 WebSocketSession#isSecure() doesn't return true for SSL session on + the server side + + 410246 HttpClient with proxy does not tunnel HTTPS requests. + + 410337 throw EofException instead of EOFException in HttpOutput.write() if + HttpOutpyt is closed + + 410341 suppress stacktraces that happen during test setup shutdown after + successful test run + + 410370 WebSocketCreator.createWebSocket() should use servlet specific + parameters + + 410372 Make SSL client certificate information available to server + websockets + + 410386 WebSocket Session.getUpgradeRequest().getRequestURI() returns bad URI + on server side + + 410405 Avoid NPE for requestDispatcher(../) + + 410469 UpgradeRequest is sent twice when using SSL, one fails warning about + WritePendingException + + 410522 jetty start broken for command line options + + 410537 Exceptions during @OnWebSocketConnect not reported to + @OnWebSocketError + + 410559 Removed FillInterest race + + 410630 MongoSessionManager conflicting session update op + + 410693 ServletContextHandler.setHandler does not relink handlers - check for + null + + 410750 NoSQLSessions: implement session context data persistence across + server restarts + + 410799 errors while creating push streams in HttpTransportOverSPDY are now + logged to debug instead of warn + + 410893 async support defaults to false for spec created servlets and filters + + 410911 Continuation isExpired handling. + + 410995 Avoid reverse DNS lookups when creating SSLEngines. + + 411061 fix cookie handling in spdy. If two different HTTP headers with the + same name are set, they should be translated to a single multiheader value + according to: + http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3#TOC-2.6.10-Name-Value-Header-Block. + That applies for Set-Cookie headers for example. Before this changed + duplicate header names have overwritten the previous one + + 411135 HttpClient may send proxied https requests to the proxy instead of + the target server. + + 411340 add comment why executeOnFillable defaults to true + + 411545 SslConnection.DecryptedEndpoint.fill() sometimes misses a few network + bytes + +jetty-9.0.3.v20130506 - 06 May 2013 + + 404010 fix cast exception in mongodb session manager + + 404911 WebSocketCloseTest fails spuriously + + 405281 allow filemappedbuffers to not be used + + 405327 Modular Start.ini + + 405530 Wrap AsyncContext to throw ISE after complete + + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest + + 405570 spdy push: resource ordering and sequential push. + + 405631 Plugin gives error when its started twice + + 405925 Redeploy with jetty-maven-plugin fails + + 406015 Query parameters and POST queries. Fixed proxy case where the path is + rewritten to be absolute. + + 406202 re-enabled connector statistics + + 406214 fix constructor for PushSynInfo ignores timeout, remove timeout for + creating push streams in HttpTransportOverSPDY + + 406272 Security constraints with multiple http-method-omissions can be + incorrectly applied + + 406390 406617 removed tiny race from handling of suspend and complete + + 406437 Digest Auth supports out of order nc + + 406449 Session's disconnect not detected + + 406617 Spin in Request.recycle + + 406618 Jetty startup in OSGi Equinox fails when using option + jetty.home.bundle=org.eclipse.jetty.osgi.boot + + 406753 jetty-runner contains invalid signature files + + 406768 Improved handling of static content resources + + 406861 IPv6 redirects fail. + + 406923 Accept CRLF or LF but not CR as line termination + + 406962 Improve attribute names in Request + + 407075 Do not dispatch from complete + + 407135 Unauthorized response causes retry loop. + + 407136 @PreDestroy called after Servlet.destroy() + + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager + + 407214 Reduce build logging of OSGi modules + +jetty-9.0.2.v20130417 - 17 April 2013 + + 364921 FIN WAIT sockets + + 402885 reuse Deflaters in GzipFilter + + 403591 do not use the ConcurrentArrayBlockingQueue for thread pool, selector + and async request log + + 404511 fixed poor methods in ArrayTernaryTrie + + 405119 Tidy up comments and code formatting for osgi + + 405352 Servlet init-param always overridden by WebServlet annotation + + 405364 spdy imeplement MAX_CONCURRENT_STREAMS + + 405449 spdy improve handling of duplicate stream Ids + + 405540 ServletContextListeners call in reverse in doStop + + 405551 InputStreamResponseListener.await returns null when request fails. + + 405679 example other server for documentation + +jetty-9.0.1.v20130408 - 08 April 2013 + + 384552 add comment to jetty-https.xml describing keymanager password + + 385488 non existing resources in collection are just warnings + + 392129 fixed merged of handling of timeouts after startAsync + + 393971 Improve setParentLoaderPriorty javadoc + + 393972 Improve WebAppContext classloading javadoc + + 395620 do not managed inherited life cycle listeners + + 396562 Add an implementation of RequestLog that supports Slf4j + + 399967 Destroyables destroyed on undeploy and shutdown hook + + 400142 ConcurrentModificationException in JDBC SessionManger + + 400144 When loading a session fails the JDBCSessionManger produces duplicate + session IDs + + 400689 Add support for Proxy authentication. + + 401150 close input stream used from cached resource + + 401806 spdy push properly pass through request and response headers for + pushed resources + + 402397 InputStreamResponseListener early close inputStream cause hold lock. + + 402485 reseed secure random + + 402626 Do not required endpoint host checking by default in server and + configure in client + + 402666 Improve handling of TLS exceptions due to raw socket close. + + 402694 setuid as LifeCycle listener + + 402706 HttpSession.setMaxInactiveInterval(int) does not change JDBCSession + expiry + + 402726 WebAppContext references old WebSocket packages in system and server + classes + + 402735 jetty.sh to support status which is == check + + 402757 WebSocket client module can't be used with WebSocket server module in + the same WAR. + + 402833 Test harness for global error page and hide exception message from + reason string + + 402844 STOP.PORT & STOP.KEY behaviour has changed + + 402982 Premature initialization of Servlets + + 402984 WebSocket Upgrade must honor case insensitive header fields in + upgrade request + + 403122 Session replication fails with ClassNotFoundException when session + attribute is Java dynamic proxy + + 403280 Update to javax.el 2.2.4 + + 403281 jetty.sh waits for started or failure before returning + + 403360 Named connectors + + 403370 move frameBytes.fail() call in StandardSession.flush() outside the + synchronized block to avoid deadlock + + 403373 WebSocket change timeout log level from warn -> info + + 403380 Introduce WebSocketTimeoutException to differentiate between EOF on + write and Timeout + + 403451 Review synchronization in SslConnection. + + 403510 HttpSession maxInactiveInterval is not serialized in HashSession + + 403513 jetty:run goal cannot be executed twice during the maven build + + 403570 Asynchronous Request Logging + + 403591 do not use the ConcurrentArrayBlockingQueue for thread pool, selector + and async request log + + 403817 Use of WebSocket Session.close() results in invalid status code + + 404029 port jetty-monitor to jetty-9 and activate it + + 404036 JDBCSessionIdManager.doStart() method should not call + cleanExpiredSessions() because Listeners can't be notified + + 404067 If cannot connect to db fail startup of JDBCSessionIdManager + + 404128 Add Vary headers rather than set them + + 404176 Jetty's AnnotationConfiguration class does not scan non-jar resources + on the container classpath + + 404204 Exception from inputstream cause hang or timeout. + + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if + listFiles() returns null + + 404323 Improved parameterization of https and SPDY + + 404325 data constraint redirection does send default port + + 404326 set status when Request.setHandled(true) is called + + 404511 Replaced all StringMap usage with Tries + + 404517 Close connection if request received after half close + + 404610 Reintroduce ability to disallow TLS renegotiation. + + 404757 SPDY can only be built with the latest JDK version. + + 404789 Support IPv6 addresses in DoSFilter white list. + + 404881 Allow regexs for SslContextFactory.setIncludeCipherSuites() and + .setExcludeCipherSuites() + + 404889 SelectorManager accepts attachments with sockets + + 404906 servlets with load-on-startup = 0 are not fired up on jetty 9 startup + + 404958 Fixed Resource.newSystemResource striped / handling + + 405044 Query parameters lost for non GET or POST. + +jetty-9.0.0.v20130308 - 08 March 2013 + + 399070 add updated version of npn-boot jar to start.ini + + 399799 do not hold lock while calling invalidation listeners + + 399967 Destroyables destroyed on undeploy and shutdown hook + + 400312 ServletContextListener.contextInitialized() is not called when added + in ServletContainerInitializer.onStartup + + 401495 removed unused getOutputStream + + 401531 StringIndexOutOfBoundsException for "/*" of + fix for multiple mappings to *.jsp + + 401641 Fixed MBean setter for String[] + + 401642 Less verbose INFOs + + 401643 Improved Authentication exception messages and provided quiet servlet + exception + + 401644 Dump does not login user already logged in + + 401651 Abort request if maxRequestsQueuedPerDestination is reached. + + 401777 InputStreamResponseListener CJK byte (>=128) cause EOF. + + 401904 fixed getRemoteAddr to return IP instead of hostname + + 401908 Enhance DosFilter to allow dynamic configuration of attributes. + + 401966 Ensure OSGI WebApp as Service (WebAppContext) can be deployed only + through ServiceWebAppProvider + + 402008 Websocket blocking write hangs when remote client dies (or is killed) + without going thru Close handshake + + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty + server is stopped + + 402075 Massive old gen growth when hit by lots of non persistent + connections. + + 402090 httpsender PendingState cause uncertain data send to server. + + 402106 fixed URI resize in HttpParser + + 402148 Update Javadoc for WebSocketServlet for new API + + 402154 WebSocket / Session.setIdleTimeout(ms) should support in-place idle + timeout changes + + 402185 updated javascript mime-type + + 402277 spdy proxy: fix race condition in nested push streams initiated by + upstream server. Fix several other small proxy issues + + 402316 HttpReceiver and null pointer exception. + + 402341 Host with default port causes redirects loop. + + 402726 WebAppContext references old WebSocket packages in system and server + classes + + 402757 WebSocket client module can't be used with WebSocket server module in + the same WAR + +jetty-8.1.12.v20130726 - 26 July 2013 + + 396706 CGI support parameters + + 397193 MongoSessionManager refresh updates last access time + + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7 + + 408529 Etags set in 304 response + + 408600 set correct jetty.url in all pom files + + 408642 setContentType from addHeader + + 408662 In pax-web servlet services requests even if init() has not finished + running + + 408806 getParameter returns null on Multipart request if called before + request.getPart()/getParts() + + 408909 GzipFilter setting of headers when reset and/or not compressed + + 409028 Jetty HttpClient does not work with proxy CONNECT method. + + 409133 Empty causes StackOverflowError + + 409436 NPE on context restart using dynamic servlet registration + + 409449 Ensure servlets, filters and listeners added via dynamic + registration, annotations or descriptors are cleaned on context restarts + + 409556 FileInputStream not closed in DirectNIOBuffer + + 410405 Avoid NPE for requestDispatcher(../) + + 410630 MongoSessionManager conflicting session update op + + 410750 NoSQLSessions: implement session context data persistence across + server restarts + + 410893 async support defaults to false for spec created servlets and filters + + 411135 HttpClient may send proxied https requests to the proxy instead of + the target server. + + 411216 RequestLogHandler handles async completion + + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued + parameters 411459 MultiPartFilter.Wrapper getParameter should use charset + encoding of part + + 411755 MultiPartInputStreamParser fails on base64 encoded content + + 411909 GzipFilter flushbuffer() results in erroneous finish() call + + 412712 HttpClient does not send the terminal chunk after partial writes. + + 412750 HttpClient close expired connections fix + + 413371 Default JSON.Converters for List and Set. + + 413372 JSON Enum uses name rather than toString() + + 413684 Trailing slash shows JSP source + + 413812 Make RateTracker serializable + +jetty-7.6.12.v20130726 - 26 July 2013 + + 396706 CGI support parameters + + 397193 MongoSessionManager refresh updates last access time + + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7 + + 408529 Etags set in 304 response + + 408600 set correct jetty.url in all pom files + + 408642 setContentType from addHeader + + 408662 In pax-web servlet services requests even if init() has not finished + running + + 408909 GzipFilter setting of headers when reset and/or not compressed + + 409028 Jetty HttpClient does not work with proxy CONNECT method. + + 409133 Empty causes StackOverflowError + + 409556 FileInputStream not closed in DirectNIOBuffer + + 410630 MongoSessionManager conflicting session update op + + 410750 NoSQLSessions: implement session context data persistence across + server restarts + + 411135 HttpClient may send proxied https requests to the proxy instead of + the target server. + + 411216 RequestLogHandler handles async completion + + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued + parameters 411459 MultiPartFilter.Wrapper getParameter should use charset + encoding of part + + 411755 MultiPartInputStreamParser fails on base64 encoded content + + 411909 GzipFilter flushbuffer() results in erroneous finish() call + + 412712 HttpClient does not send the terminal chunk after partial writes. + + 412750 HttpClient close expired connections fix + + 413371 Default JSON.Converters for List and Set. + + 413372 JSON Enum uses name rather than toString() + + 413684 Trailing slash shows JSP source + + 413812 Make RateTracker serializable + +jetty-8.1.11.v20130520 - 20 May 2013 + + 402844 STOP.PORT & STOP.KEY behaviour has changed + + 403281 jetty.sh waits for started or failure before returning + + 403513 jetty:run goal cannot be executed twice during the maven build + + 403570 Asynchronous Request Logging + + 404010 fix cast exception in mongodb session manager + + 404128 Add Vary headers rather than set them + + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if + listFiles() returns null + + 404325 data constraint redirection does send default port + + 404517 Close connection if request received after half close + + 404789 Support IPv6 addresses in DoSFilter white list. + + 404958 Fixed Resource.newSystemResource striped / handling + + 405281 allow filemappedbuffers to not be used + + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest + + 406437 Digest Auth supports out of order nc + + 406618 Jetty startup in OSGi Equinox fails when using option + jetty.home.bundle=org.eclipse.jetty.osgi.boot + + 406923 CR line termination + + 407136 @PreDestroy called after Servlet.destroy() + + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager + + 407931 Add toggle for failing on servlet availability + + 407976 JDBCSessionIdManager potentially leaves server in bad state after + startup + + 408077 HashSessionManager leaves file handles open after being stopped + + 408446 Multipart parsing issue with boundry and charset in ContentType + header + +jetty-8.1.10.v20130312 - 12 March 2013 + + 376273 Early EOF because of SSL Protocol Error on + https://api-3t.paypal.com/nvp. + + 381521 allow compress methods to be configured + + 392129 fixed handling of timeouts after startAsync + + 394064 ensure that JarFile instances are closed on JarFileResource.release() + + 398649 ServletContextListener.contextDestroyed() is not called on + ContextHandler unregistration + + 399703 made encoding error handling consistent + + 399799 do not hold lock while calling invalidation listeners + + 399967 Shutdown hook calls destroy + + 400040 NullPointerException in HttpGenerator.prepareBuffers + + 400142 ConcurrentModificationException in JDBC SessionManger + + 400144 When loading a session fails the JDBCSessionManger produces duplicate + session IDs + + 400312 ServletContextListener.contextInitialized() is not called when added + in ServletContainerInitializer.onStartup + + 400457 Thread context classloader hierarchy not searched when finding + webapp's java:comp/env + + 400859 limit max size of writes from cached content + + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib + + 401317 Make Safari 5.x websocket support minVersion level error more clear + + 401382 Prevent parseAvailable from parsing next chunk when previous has not + been consumed. Handle no content-type in chunked request. + + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser + + 401485 zip file closed exception + + 401531 StringIndexOutOfBoundsException for "/*" of + fix for multiple mappings to *.jsp + + 401908 Enhance DosFilter to allow dynamic configuration of attributes. + + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty + server is stopped + + 402485 reseed secure random + + 402735 jetty.sh to support status which is == check + + 402833 Test harness for global error page and hide exception message from + reason string + +jetty-7.6.11.v20130520 - 20 May 2013 + + 402844 STOP.PORT & STOP.KEY behaviour has changed + + 403281 jetty.sh waits for started or failure before returning + + 403513 jetty:run goal cannot be executed twice during the maven build + + 403570 Asynchronous Request Logging + + 404010 fix cast exception in mongodb session manager + + 404128 Add Vary headers rather than set them + + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if + listFiles() returns null + + 404325 data constraint redirection does send default port + + 404517 Close connection if request received after half close + + 404789 Support IPv6 addresses in DoSFilter white list. + + 404958 Fixed Resource.newSystemResource striped / handling + + 405281 allow filemappedbuffers to not be used + + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest + + 406437 Digest Auth supports out of order nc + + 406923 CR line termination + + 407136 @PreDestroy called after Servlet.destroy() + + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager + + 407976 JDBCSessionIdManager potentially leaves server in bad state after + startup + + 408077 HashSessionManager leaves file handles open after being stopped + + 408446 Multipart parsing issue with boundry and charset in ContentType + header + +jetty-7.6.10.v20130312 - 12 March 2013 + + 376273 Early EOF because of SSL Protocol Error on + https://api-3t.paypal.com/nvp. + + 381521 allow compress methods to be configured + + 394064 ensure that JarFile instances are closed on JarFileResource.release() + + 398649 ServletContextListener.contextDestroyed() is not called on + ContextHandler unregistration + + 399703 made encoding error handling consistent + + 399799 do not hold lock while calling invalidation listeners + + 399967 Shutdown hook calls destroy + + 400040 NullPointerException in HttpGenerator.prepareBuffers + + 400142 ConcurrentModificationException in JDBC SessionManger + + 400144 When loading a session fails the JDBCSessionManger produces duplicate + session IDs + + 400457 Thread context classloader hierarchy not searched when finding + webapp's java:comp/env + + 400859 limit max size of writes from cached content + + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib + + 401317 Make Safari 5.x websocket support minVersion level error more clear + + 401382 Prevent parseAvailable from parsing next chunk when previous has not + been consumed. Handle no content-type in chunked request. + + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser + + 401531 StringIndexOutOfBoundsException for "/*" of + fix for multiple mappings to *.jsp + + 401908 Enhance DosFilter to allow dynamic configuration of attributes. + + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty + server is stopped + + 402485 reseed secure random + + 402735 jetty.sh to support status which is == check + + 402833 Test harness for global error page and hide exception message from + reason string + +jetty-9.0.0.RC2 - 24 February 2013 + + Fix etc/jetty.xml TimerScheduler typo that is preventing normal startup + + Fix etc/jetty-https.xml ExcludeCipherSuites typo that prevents SSL startup + + Fix websocket memory use + +jetty-9.0.0.RC1 - 22 February 2013 + + 227244 Remove import of backport-util-concurrent Arrays class + + 362854 Continuation implementations may deadlock. + + 376273 Early EOF because of SSL Protocol Error on + https://api-3t.paypal.com/nvp. + + 381521 allow compress methods to be configured + + 388103 Add API for tracking down upload progress. + + 394064 ensure that JarFile instances are closed on JarFileResource.release() + + 398649 ServletContextListener.contextDestroyed() is not called on + ContextHandler unregistration + + 399463 add start.ini documentation for OPTIONS. Remove reference to + start_config + + 399520 Websocket Server Connection needs session idle timeouts + + 399535 Websocket-client connect should have configurable connect timeout + + 400014 Http async client DNS performance. + + 400040 NullPointerException in HttpGenerator.prepareBuffers + + 400184 SslContextFactory change. Disable hostname verification if trustAll + is set + + 400255 Using WebSocket.maxMessageSize results in IllegalArgumentException + + 400434 Add support for an OutputStream ContentProvider. + + 400457 Thread context classloader hierarchy not searched when finding + webapp's java:comp/env + + 400512 ClientUpgradeRequet.addExtension() should fail if extension is not + installed + + 400555 HttpProxyEngine: Add http version header in response + + 400631 Calling flush() on HttpServletResponse.getOutputStream() after last + byte of body causes EofException. + + 400734 NPE for redirects with relative location. + + 400738 ResourceHandler doesn't support range requests + + 400848 Redirect fails with non-encoded location URIs. + + 400849 Conversation hangs if non-first request fails when queued. + + 400859 limit max size of writes from cached content + + 400864 Added LowResourcesMonitor + + 401177 Make org.eclipse.jetty.websocket.api.WebSocketAdapter threadsafe + + 401183 Handle push streams in new method StreamFrameListener.onPush() + instead of SessionFrameListener.syn() + + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib + + 401317 Make Safari 5.x websocket support minVersion level error more clear + + 401382 Prevent parseAvailable from parsing next chunk when previous has not + been consumed. Handle no content-type in chunked request. + + 401414 Hostname verification fails. + + 401427 WebSocket messages sent from onConnect fail to be read by jetty + websocket-client + + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser + + 401485 zip file closed exception + +jetty-9.0.0.RC0 - 01 February 2013 + + 362226 HttpConnection "wait" call causes thread resource exhaustion + + 370384 jetty-aggregate not used in jetty-distribution + + 381351 defaults for keymanager and trustmanager come from their factories + and not hardcoded + + 381521 Only set Vary header when content could be compressed + + 381689 Allow jetty-runner to specify listen host along with listen port + + 382237 support non java JSON classes + + 385306 added getURI method + + 391248 fixing localhost checking in statistics servlet + + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet + + 391345 fix missing br tag in statistics servlet + + 393933 remove deprecated classes/methods and consolidate some static methods + to SslContextFactory + + 393968 fix typo in javadoc + + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp + + 395232 UpgradeRequest object passed to createWebSocket() has null Session + + 395444 Disabling Websocket Compress Extensions (not working with Chrome / + deflate problem) + + 396428 Test for WebSocket masking on client fragments per RFC 6455 Sec 5.1 + + 396574 add JETTY_HOME as a location for pid to be found + + 396606 make spdy proxy capable of receiving SPDY and talk HTTP to the + upstream server + + 397168 backed of test timing + + 397769 TimerScheduler does not relinquish cancelled tasks. + + 398872 SslConnection should not be notified of idle timeouts. First + solution. Merge branch 'ssl_idle_timeout_ignored'. + + 399132 check parent dir of session store against file to be removed + + 399173 UpgradeRequest.getParameterMap() should never return null + + 399242 Reduce/eliminate false sharing in BlockingArrayQueue. + + 399319 Request.getURI() may return negative ports. + + 399324 HttpClient does not handle correctly UnresolvedAddressException. + + 399343 OnWebSocketConnect should use api.Session parameter instead. + + 399344 Add missing @OnWebSocketError annotation + + 399397 websocket-client needs better upgrade failure checks + + 399421 Add websocket.api.Session.disconnect() for harsh low level connection + disconnect + + 399515 Websocket-client connect issues should report to websocket onError + handlers + + 399516 Websocket UpgradeException should contain HTTP Request/Response + information + + 399566 Running org.eclipse.jetty.server.session.MaxInactiveMigrationTest + produces stack trace + + 399568 OSGi tests can't find websocket classes + + 399576 Server dumpStdErr throws exception if server is stopping + + 399669 Remove WebSocketConnection in favor of websocket.api.Session + + 399689 Websocket RFC6455 extension handshake fails if server doesn't have + extension + + 399703 made encoding error handling consistent + + 399721 Change to + +jetty-9.0.0.M5 - 19 January 2013 + + 367638 throw exception for excess form keys + + 381521 Only set Vary header when content could be compressed + + 391623 Making --stop with STOP.WAIT perform graceful shutdown + + 393158 java.lang.IllegalStateException when sending an empty InputStream + + 393220 remove dead code from ServletHandler and log ServletExceptions in + warn instead of debug + + 393733 WebSocketClient interface should support multiple connections + + 395885 ResourceCache should honor useFileMappedBuffer if set + + 396253 FilterRegistration wrong order + + 396459 Log specific message for empty request body for multipart mime + requests + + 396500 HttpClient Exchange takes forever to complete when less content sent + than Content-Length + + 396886 MultiPartFilter strips bad escaping on filename="..." + + 397110 Accept %uXXXX encodings in URIs + + 397111 Tolerate empty or excessive whitespace preceeding MultiParts + + 397112 Requests with byte-range throws NPE if requested file has no mimetype + (eg no file extension) + + 397114 run-forked with waitForChild=false can lock up + + 397130 maxFormContentSize set in jetty.xml is ignored + + 397190 improve ValidUrlRule to iterate on codepoints + + 397321 Wrong condition in default start.config for annotations + + 397535 Support pluggable alias checking to support symbolic links + + 397769 TimerScheduler does not relinquish cancelled tasks. + + 398105 Clean up WebSocketPolicy + + 398285 ProxyServlet mixes cookies from different clients. + + 398337 UTF-16 percent encoding in UTF-16 form content + + 398582 Move lib/jta jar into lib/jndi + + JETTY-1533 handle URL with no path + +jetty-9.0.0.M4 - 21 December 2012 + + 392417 Prevent Cookie parsing interpreting unicode chars + + 393220 remove dead code from ServletHandler and log ServletExceptions in + warn instead of debug + + 393770 Error in ContextHandler.setEventListeners(EventListener[]) + + 394210 spdy api rename stream.syn() to stream.push() + + 394211 spdy: Expose RemoteServerAddress and LocalServerAddress in + StandardSession + + 394294 Start web-bundles started before jetty + + 394370 Add integration test for client resetting SPDY push SYN's + + 394514 Preserve URI parameters in sendRedirect + + 394552 HEAD requests don't work for jetty-client. + + 394719 remove regex from classpath matching + + 394829 Session can not be restored after SessionManager.setIdleSavePeriod + has saved the session + + 394839 Allow multipart mime with no boundary + + 394854 optimised promise implementation + + 394870 Make enablement of remote access to test webapp configurable in + override-web.xml + + 395168 fix unavailable attributes when return type has annotation on super + class + + 395215 Multipart mime with just LF and no CRLF: add test for legacy filter + + 395220 New InputStream extension to allow a mix of EOL styles between + headers and content + + 395312 log.warn if a SPDY stream gets committed twice + + 395313 HttpTransportOverSPDY.send() does not rethrow exceptions, but call + Callback.failed() only + + 395314 Add missing flush() call after StandardSession.complete() has been + called. Some test cleanup. + + 395344 Move JSR-356 (Java WebSocket API) work off to Jetty 9.1.x + + 395380 add ValidUrlRule to jetty-rewrite + + 395394 allow logging from boot classloader + + 395574 port jetty-runner and StatisticsServlet to jetty-9 + + 395605 class cast exception in XMLConfiguration fixed + + 395649 add jetty-setuid back into jetty 9 and distribution + + 395794 slightly modified fix for empty file extenstion to mime type mapping. + Added a default, so it will also work with unknown file extensions + + 396036 SPDY send controlFrames even if Stream is reset to avoid breaking the + compression context + + 396193 spdy remove timeout parameters from api and move them to the Info* + classes + + 396459 Log specific message for empty request body for multipart mime + requests + + 396460 Make ServerConnector configurable with jetty-maven-plugin + + 396472 org.eclipse.jetty.websocket needs to be removed from serverclasses as + it should only be a systemclass + + 396473 JettyWebXMlConfiguration does not reset serverclasses + + 396474 add websocket server classes to jetty-maven-plugin classpath + + 396475 Remove unneeded websocket-server dependency from test-jetty-webapp + + 396518 Websocket AB Tests should test for which side disconnected and + closed.wasClean + + 396687 missing jetty-io dependency in jetty-servlets + + JETTY-796 jetty ant plugin improvements + +jetty-9.0.0.M3 - 20 November 2012 + + 391623 Add option to --stop to wait for target jetty to stop + + 392237 Port test-integration to jetty-9 + + 392492 expect headers only examined for requests>=HTTP/1.1 + + 392850 ContextLoaderListener not called in 9.0.0.M1 and M2 + + 393075 1xx, 204, 304 responses ignore headers that suggest content + + 393832 start connectors last + + 393947 additional tests + + 394143 add jetty-all aggregate via release profile + + 394144 add jetty-jaspi + +jetty-8.1.9.v20130131 - 31 January 2013 + + 362226 HttpConnection "wait" call causes thread resource exhaustion + + 367638 throw exception for excess form keys + + 381521 Only set Vary header when content could be compressed + + 382237 support non java JSON classes + + 391248 fixing localhost checking in statistics servlet + + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet + + 391345 fix missing br tag in statistics servlet + + 391623 Add option to --stop to wait for target jetty to stop + + 392417 Prevent Cookie parsing interpreting unicode chars + + 392492 expect headers only examined for requests>=HTTP/1.1 + + 393075 1xx 204 and 304 ignore all headers suggesting content + + 393158 java.lang.IllegalStateException when sending an empty InputStream + + 393220 remove dead code from ServletHandler and log ServletExceptions in + warn instead of debug + + 393947 additional tests + + 393968 fix typo in javadoc + + 394294 A web-bundle started before jetty-osgi should be deployed as a webapp + when jetty-osgi starts + + 394514 Preserve URI parameters in sendRedirect + + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp + + 394719 remove regex from classpath matching + + 394811 Make JAASLoginService log login failures to DEBUG instead of WARN. + Same for some other exceptions. + + 394829 Session can not be restored after SessionManager.setIdleSavePeriod + has saved the session + + 394839 Allow multipart mime with no boundary + + 394870 Make enablement of remote access to test webapp configurable in + override-web.xml + + 395215 Multipart mime with just LF and no CRLF + + 395380 add ValidUrlRule to jetty-rewrite + + 395394 allow logging from boot classloader + + 396253 FilterRegistration wrong order + + 396459 Log specific message for empty request body for multipart mime + requests + + 396500 HttpClient Exchange takes forever to complete when less content sent + than Content-Length + + 396574 add JETTY_HOME as a location for pid to be found + + 396886 MultiPartFilter strips bad escaping on filename="..." + + 397110 Accept %uXXXX encodings in URIs + + 397111 Tolerate empty or excessive whitespace preceeding MultiParts + + 397112 Requests with byte-range throws NPE if requested file has no mimetype + (eg no file extension) + + 397130 maxFormContentSize set in jetty.xml is ignored + + 397190 improve ValidUrlRule to iterate on codepoints + + 397321 Wrong condition in default start.config for annotations + + 397535 Support pluggable alias checking to support symbolic links + + 398337 UTF-16 percent encoding in UTF-16 form content + + 399132 check parent dir of session store against file to be removed + + JETTY-1533 handle URL with no path + +jetty-7.6.9.v20130131 - 31 January 2013 + + 362226 HttpConnection "wait" call causes thread resource exhaustion + + 367638 throw exception for excess form keys + + 381521 Only set Vary header when content could be compressed + + 382237 support non java JSON classes + + 391248 fixing localhost checking in statistics servlet + + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet + + 391345 fix missing br tag in statistics servlet + + 391623 Add option to --stop to wait for target jetty to stop + + 392417 Prevent Cookie parsing interpreting unicode chars + + 392492 expect headers only examined for requests>=HTTP/1.1 + + 393075 1xx 204 and 304 ignore all headers suggesting content + + 393220 remove dead code from ServletHandler and log ServletExceptions in + warn instead of debug + + 393947 additional tests + + 393968 fix typo in javadoc + + 394514 Preserve URI parameters in sendRedirect + + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp + + 394719 remove regex from classpath matching + + 394811 Make JAASLoginService log login failures to DEBUG instead of WARN. + Same for some other exceptions. + + 394829 Session can not be restored after SessionManager.setIdleSavePeriod + has saved the session + + 394839 Allow multipart mime with no boundary + + 395215 Multipart mime with just LF and no CRLF + + 395380 add ValidUrlRule to jetty-rewrite + + 395394 allow logging from boot classloader + + 396459 Log specific message for empty request body for multipart mime + requests + + 396500 HttpClient Exchange takes forever to complete when less content sent + than Content-Length + + 396574 add JETTY_HOME as a location for pid to be found + + 396886 MultiPartFilter strips bad escaping on filename="..." + + 397110 Accept %uXXXX encodings in URIs + + 397111 Tolerate empty or excessive whitespace preceeding MultiParts + + 397112 Requests with byte-range throws NPE if requested file has no mimetype + (eg no file extension) + + 397130 maxFormContentSize set in jetty.xml is ignored + + 397190 improve ValidUrlRule to iterate on codepoints + + 397321 Wrong condition in default start.config for annotations + + 397535 Support pluggable alias checking to support symbolic links + + 398337 UTF-16 percent encoding in UTF-16 form content + + 399132 check parent dir of session store against file to be removed + + JETTY-1533 handle URL with no path + + 394215 Scheduled tasks throwing exceptions kill java.util.Timer thread. + + 394232 add jetty-ant into jetty9 + + 394357 Make JarResource constructors protected + + 394370 Add unit tests for HttpTransportOverSPDY.send() + + 394383 add logging of the SSLEngine + + 394545 Add jetty-jaas dependency to jetty-maven-plugin + + 394671 Fix setting loglevel on commandline, organize import, fix javadoc + + JETTY-846 Support maven-war-plugin configuration for jetty-maven-plugin; fix + NPE + +jetty-9.0.0.M2 - 06 November 2012 + + 371170 MongoSessionManager LastAccessTimeTest fails + + 391877 org.eclipse.jetty.webapp.FragmentDescriptor incorrectly reporting + duplicate others for after ordering + + 392237 Split jaas from jetty-plus into jetty-jaas and port the + test-jaas-webapp from codehaus + + 392239 Allow no error-code or exception for error-pages + + 392304 fixed intermittent client SSL failure. Correctly compact in flip2fill + + 392525 Add option to --stop-wait to specify timeout + + 392641 JDBC Sessions not scavenged if expired during downtime + + 392812 MongoSessionIDManager never purges old sessions + + 392959 Review HttpClient.getConversation(long). + + 393014 Mongodb purgevalid using query for purgeinvalid + + 393015 Mongodb purge not rescheduled + + 393075 Jetty WebSocket client cannot connect to Tomcat WebSocket Server + + 393218 add xsd=application/xml mime mapping to defaults + + 393291 Confusing log entry about (non) existing webAppSourceDirectory + + 393303 use jetty-web.xml to explicitly add the jetty packages that need + visability. This commit also sucked in some changes made to help with the + documentation process (improving deployer configuration management + + 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls + + 393368 min websocket version + + 393383 delay onClose call until closeOut is done + + 393494 HashSessionManager can't delete unrestorable sessions on Windows + + JETTY-1547 Jetty does not honor web.xml + web-app/jsp-config/jsp-property-group/default-content-type + + JETTY-1549 jetty-maven-plugin fails to reload the LoginService properly + + JETTY-1550 virtual WEB-INF not created if project has overlays + +jetty-8.1.8.v20121106 - 06 November 2012 + + 371170 MongoSessionManager LastAccessTimeTest fails + + 388675 Non utf8 encoded query strings not decoded to parameter map using + queryEncoding + + 388706 Avoid unnecessary indirection through Charset.name + + 389390 AnnotationConfiguration is ignored if the metadata-complete attribute + is present in an override descriptor regardless of the value + + 389452 if web-fragment metadata-complete==true still scan its related jar if + there there is a ServletContainerInitializer, ensure webapp restarts work + + 389686 Fix reference to org.eclipse.jetty.util.log.stderr.LONG system + property in javadoc for StdErrLog + + 389956 Bad __context set in WebAppContext.start sequence with respect to ENC + setup + + 389965 OPTIONS should allow spaces in comma separated list + + 390108 Servlet 3.0 API for programmatic login doesn't appear to work + + 390161 Apply DeferredAuthentication fix to jaspi + + 390163 Implement ServletRegistration.Dynamic.setServletSecurity + + 390503 http-method-omission element not being processed + + 390560 The method AnnotationParser.getAnnotationHandlers(String) always + returns a empty collection. + + 391080 Multipart temp files can be left on disk from Request.getPart and + getParts + + 391082 No exception if multipart input stream incomplete + + 391188 Files written with Request.getPart().write(filename) should not be + auto-deleted + + 391483 fix bad javadoc example in shutdown handler + + 391622 Be lenient on RFC6265 restriction on duplicate cookie names in same + response + + 391623 Add option to --stop to wait for target jetty to stop + + 391877 org.eclipse.jetty.webapp.FragmentDescriptor incorrectly reporting + duplicate others for after ordering + + 392239 Allow no error-code or exception for error-pages + + 392525 Add option to --stop-wait to specify timeout + + 392641 JDBC Sessions not scavenged if expired during downtime + + 392812 MongoSessionIDManager never purges old sessions + + 393014 Mongodb purgevalid using query for purgeinvalid + + 393015 Mongodb purge not rescheduled + + 393075 Jetty WebSocket client cannot connect to Tomcat WebSocket Server + + 393218 add xsd=application/xml mime mapping to defaults + + 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls + + 393368 min websocket version + + 393383 delay onClose call until closeOut is done + + 393494 HashSessionManager can't delete unrestorable sessions on Windows + + JETTY-1547 Jetty does not honor web.xml + web-app/jsp-config/jsp-property-group/default-content-type + +jetty-7.6.8.v20121106 - 06 November 2012 + + 371170 MongoSessionManager LastAccessTimeTest fails + + 388675 Non utf8 encoded query strings not decoded to parameter map using + queryEncoding + + 389686 Fix reference to org.eclipse.jetty.util.log.stderr.LONG system + property in javadoc for StdErrLog + + 389956 Bad __context set in WebAppContext.start sequence with respect to ENC + setup + + 389965 OPTIONS should allow spaces in comma separated list + + 390161 Apply DeferredAuthentication fix to jaspi + + 390560 The method AnnotationParser.getAnnotationHandlers(String) always + returns a empty collection. + + 391483 fix bad javadoc example in shutdown handler + + 391622 Be lenient on RFC6265 restriction on duplicate cookie names in same + response + + 391623 Add option to --stop to wait for target jetty to stop + + 392239 Allow no error-code or exception for error-pages + + 392525 Add option to --stop-wait to specify timeout + + 392641 JDBC Sessions not scavenged if expired during downtime + + 392812 MongoSessionIDManager never purges old sessions + + 393014 Mongodb purgevalid using query for purgeinvalid + + 393015 Mongodb purge not rescheduled + + 393075 Jetty WebSocket client cannot connect to Tomcat WebSocket Server + + 393218 add xsd=application/xml mime mapping to defaults + + 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls + + 393368 min websocket version + + 393383 delay onClose call until closeOut is done + + 393494 HashSessionManager can't delete unrestorable sessions on Windows + +jetty-9.0.0.M1 - 15 October 2012 + + 369349 directory with spaces --dry-run fix + + 385049 fix issue with pipelined connections when switching protocols + + 387896 populate session in SessionAuthentication as a valueBound in addition + to activation so it is populate when needed + + 387919 throw EOFException on early eof from client on http requests + + 387943 Catch CNFE when no jstl jars are installed + + 387953 jstl does not work with jetty-7 in osgi + + 388072 GZipFilter incorrectly gzips when Accept-Encoding: gzip; q=0 + + 388073 null session id from cookie causes NPE fixed + + 388079 AbstractHttpConnection. Flush the buffer before shutting output down + on error condition + + 388102 Jetty HttpClient memory leaks when sending larger files + + 388393 WebAppProvider doesn't work alongside OSGi deployer + + 388502 handle earlyEOF with 500 + + 388652 Do not flush on handle return if request is suspended + + 388675 Non utf8 encoded query strings not decoded to parameter map using + queryEncoding + + 388706 Avoid unnecessary indirection through Charset.name + + 388895 Update dependencies for jetty-jndi + + 389390 AnnotationConfiguration is ignored if the metadata-complete attribute + is present in an override descriptor regardless of the value + + 389452 if web-fragment metadata-complete==true still scan its related jar if + there there is a ServletContainerInitializer, ensure webapp restarts work + + 389686 Fix reference to org.eclipse.jetty.util.log.stderr.LONG system + property in javadoc for StdErrLog + + 389956 Bad __context set in WebAppContext.start sequence with respect to ENC + setup + + 389965 OPTIONS should allow spaces in comma separated list + + 390108 Servlet 3.0 API for programmatic login doesn't appear to work + + 390161 Apply DeferredAuthentication fix to jaspi + + 390163 Implement ServletRegistration.Dynamic.setServletSecurity + + 390256 Remove Jetty6 Support + + 390263 Sec-WebSocket-Extensions from Chrome and Safari badly handled + + 390503 http-method-omission element not being processed + + 390560 The method AnnotationParser.getAnnotationHandlers(String) always + returns a empty collection. + + 391080 Multipart temp files can be left on disk from Request.getPart and + getParts + + 391082 No exception if multipart input stream incomplete + + 391140 Implement x-webkit-deflate-frame extension as-used by Chrome/Safari + + 391188 Files written with Request.getPart().write(filename) should not be + auto-deleted + + 391483 fix bad javadoc example in shutdown handler + + 391588 WebSocket Client does not set masking on close frames + + 391590 WebSocket client needs ability to set requested extensions + + 391591 WebSocket client should support x-webkit-deflate-frame + + 391622 Be lenient on RFC6265 restriction on duplicate cookie names in same + response + + 391623 Add option to --stop to wait for target jetty to stop + + JETTY-1515 Include cookies on 304 responses from DefaultServlet. + + JETTY-1532 HTTP headers decoded with platform's default encoding + + JETTY-1541 fixed different behaviour for single byte writes + + JETTY-1547 Jetty does not honor web.xml + web-app/jsp-config/jsp-property-group/default-content-type + +jetty-9.0.0.M0 - 21 September 2012 + + 380924 xmlconfiguration is not respected in + + JETTY-1495 Ensure dynamic servlet addition does not cause servlets to be + inited. + + JETTY-1500 form parameters from multipart request not available via + request.getParameter + + JETTY-1504 HttpServletResponseWrapper ignored when using asyncContext? + +jetty-7.6.3.v20120416 - 16 April 2012 + + 367172 Remove detection for slf4j NOPLogger + + 373269 Make ServletHandler.notFound() method impl do nothing - override to + send back 404. + + 373421 address potential race condition related to the nonce queue removing + the same nonce twice + + 373952 bind called too frequently on refresh + + 374018 correctly handle requestperminuted underflow + + 374252 SslConnection.onClose() does not forward to nested connection. + + 374258 SPDY leaks SSLEngines. Made the test more reliable. + + 374367 NPE in QueuedThreadPool.dump() with early java6 jvms + + 374475 Response.sendRedirect does not encode UTF-8 characters properly + + 374881 Set copyWebInf to false by default + + 374891 enhancement to how ProxyServlet determines the proxy target + + 375009 Filter initialization error will throw MultiException + + 375083 Flow control should take in account window size changes from + concurrent SETTINGS + + 375096 If starting a server instance fails in osgi it is cleaned up. + + 375490 NPE with --help on command line + + 375509 Stalled stream stalls other streams or session control frames. Now + using a "death pill" instead of a boolean in order to avoid race conditions + where DataInfos were read from the queue (but the boolean not updated yet), + and viceversa. + + 375594 fixed SSL tests so they are not order dependent + + 375709 Ensure resolveTempDirectory failure does not deadlock; improve error + message + + 375970 HttpServletRequest.getRemoteAddr() returns null when HTTP is over + SPDY. + + 376201 HalfClosed state not handled properly. Addendum to restore previous + behavior, where a closed stream was also half closed. + + JETTY-1504 HttpServletResponseWrapper ignored when using asyncContext? + +jetty-8.1.2.v20120308 - 08 March 2012 + + 370387 SafariWebsocketDraft0Test failure during build. + + 371168 Update ClientCrossContextSessionTest + + 372093 handle quotes in Require-Bundle manifest string + + 372457 Big response + slow clients + pipelined requests cause Jetty spinning + and eventually closing connections. Added a TODO for a method renaming that + will happen in the next major release (to avoid break implementers). + + 372487 JDBCSessionManager does not work with Oracle + + 372806 Command line should accept relative paths for xml config files + + 373037 jetty.server.Response.setContentLength(int) should not close a Writer + when length=0 + + 373162 add improved implementation for getParameterMap(), needs a test + though and the existing setup doesn't seem like it would easily support the + needed test so need to do that still + + 373306 Set default user agent extraction pattern for UserAgentFilter + + 373567 cert validation issue with ocsp and crldp always being enabled when + validating turned on fixed + + 373603 NullPointer in WebServletAnnotation + + JETTY-1409 GzipFilter will double-compress application/x-gzip content + + JETTY-1489 WebAppProvider attempts to deploy .svn folder + + JETTY-1494 . + +jetty-7.6.2.v20120308 - 08 March 2012 + + 370387 SafariWebsocketDraft0Test failure during build. + + 371168 Update ClientCrossContextSessionTest + + 372093 handle quotes in Require-Bundle manifest string + + 372457 Big response + slow clients + pipelined requests cause Jetty spinning + and eventually closing connections. Added a TODO for a method renaming that + will happen in the next major release (to avoid break implementers). + + 372487 JDBCSessionManager does not work with Oracle + + 372806 Command line should accept relative paths for xml config files + + 373037 jetty.server.Response.setContentLength(int) should not close a Writer + when length=0 + + 373162 add improved implementation for getParameterMap(), needs a test + though and the existing setup doesn't seem like it would easily support the + needed test so need to do that still + + 373306 Set default user agent extraction pattern for UserAgentFilter + + 373567 cert validation issue with ocsp and crldp always being enabled when + validating turned on fixed + + JETTY-1409 GzipFilter will double-compress application/x-gzip content + + JETTY-1489 WebAppProvider attempts to deploy .svn folder + + JETTY-1494 . + +jetty-8.1.1.v20120215 - 15 February 2012 + + 369121 simplified test + + 370120 jvm arguments added via start.ini and --exec are missing spaces + + 370137 SslContextFactory does not respect order for + [included|excluded]Protocols() and [included|excluded]CipherSuites(). + + 370368 resolve stack overflow in mongo db session manager + + 370386 Remove META-INF from jetty distro + + 371040 nosqlsession needs to call correct super contructor for new sessions + + 371041 valid was not being set to new mongo db sessions, and the call to + mongodb api was wrong in isIdInUse + + 371162 NPE protection for nested security handlers + + JETTY-1484 Add option for HashSessionManager to delete session files if it + can't restore them + +jetty-7.6.1.v20120215 - 15 February 2012 + + 369121 simplified test + + 370120 jvm arguments added via start.ini and --exec are missing spaces + + 370137 SslContextFactory does not respect order for + [included|excluded]Protocols() and [included|excluded]CipherSuites(). + + 370368 resolve stack overflow in mongo db session manager + + 370386 Remove META-INF from jetty distro + + 371040 nosqlsession needs to call correct super contructor for new sessions + + 371041 valid was not being set to new mongo db sessions, and the call to + mongodb api was wrong in isIdInUse + + 371162 NPE protection for nested security handlers + + JETTY-1484 Add option for HashSessionManager to delete session files if it + can't restore them + +jetty-8.1.0.v20120127 - 27 January 2012 + + 368773 allow authentication to be set by non securityHandler handlers + + 368992 avoid update key while flushing during a write + + 369216 turned off the shared resource cache + + 369349 replace quotes with a space escape method + +jetty-7.6.0.v20120127 - 27 January 2012 + + 368773 allow authentication to be set by non securityHandler handlers + + 368992 avoid update key while flushing during a write + + 369216 turned off the shared resource cache + + 369349 replace quotes with a space escape method + +jetty-8.1.0.RC5 - 20 January 2012 + + 359329 Prevent reinvocation of LoginModule.login with jaspi for already + authed user + + 368632 Remove superfluous removal of org.apache.catalina.jsp_file + + 368633 fixed configure.dtd resource mappings + + 368635 moved lifecycle state reporting from toString to dump + + 368773 process data constraints without realm + + 368787 always set token view to new header buffers in httpparser + + 368821 improved test harness + + 368920 JettyAwareLogger always formats the arguments. + + 368948 POM for jetty-jndi references unknown version for javax.activation. + + 368992 NPE in HttpGenerator.prepareBuffers() test case. + + JETTY-1475 made output state fields volatile to provide memory barrier for + non dispatched thread IO + +jetty-7.6.0.RC5 - 20 January 2012 + + 359329 Prevent reinvocation of LoginModule.login with jaspi for already + authed user + + 368632 Remove superfluous removal of org.apache.catalina.jsp_file + + 368633 fixed configure.dtd resource mappings + + 368635 moved lifecycle state reporting from toString to dump + + 368773 process data constraints without realm + + 368787 always set token view to new header buffers in httpparser + + 368821 improved test harness + + 368920 JettyAwareLogger always formats the arguments. + + 368948 POM for jetty-jndi references unknown version for javax.activation. + + 368992 avoid non-blocking flush when writing to avoid setting !_writable + without _writeblocked + + JETTY-1475 made output state fields volatile to provide memory barrier for + non dispatched thread IO + +jetty-8.1.0.RC4 - 13 January 2012 + + 365048 jetty Http client does not send proxy authentication when requesting + a Https-resource through a web-proxy. + + 366774 removed XSS vulnerbility + + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum. + + 367433 added tests to investigate + + 367435 improved D00 test harness + + 367485 HttpExchange canceled before response do not release connection. + + 367502 WebSocket connections should be closed when application context is + stopped. + + 367548 jetty-osgi-boot must not import the nested package twice + + 367591 corrected configuration.xml version to 7.6 + + 367635 Added support for start.d directory + + 367638 limit number of form parameters to avoid DOS + + 367716 simplified idleTimeout logic + + 368035 WebSocketClientFactory does not invoke super.doStop(). + + 368060 do not encode sendRedirect URLs + + 368112 NPE on element parsing web.xml + + 368113 Support servlet mapping to "" + + 368114 Protect against non-Strings in System properties for Log + + 368189 WebSocketClientFactory should not manage external thread pool. 368240 + - Improve AggregateLifeCycle handling of shared lifecycles + + 368215 Remove debug from jaspi + + 368240 Better handling of locally created ThreadPool. Forgot to null out + field. + + 368291 Change warning to info for NoSuchFieldException on + BeanELResolver.properties + + JETTY-1467 close half closed when idle + +jetty-7.6.0.RC4 - 13 January 2012 + + 365048 jetty Http client does not send proxy authentication when requesting + a Https-resource through a web-proxy. + + 366774 removed XSS vulnerbility + + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum. + + 367716 simplified maxIdleTime logic + + 368035 WebSocketClientFactory does not invoke super.doStop(). + + 368060 do not encode sendRedirect URLs + + 368114 Protect against non-Strings in System properties for Log + + 368189 WebSocketClientFactory should not manage external thread pool. + + 368215 Remove debug from jaspi + + 368240 Improve AggregateLifeCycle handling of shared lifecycles + + 368291 Change warning to info for NoSuchFieldException on + BeanELResolver.properties + +jetty-8.1.0.RC2 - 22 December 2011 + + 359329 jetty-jaspi must exports its packages. jetty-plus must import + javax.security + + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to + cope + + 364921 Made test less time sensitive + + 364936 use Resource for opening URL streams + + 365267 NullPointerException in bad Address + + 365375 ResourceHandler should be a HandlerWrapper + + 365750 Support WebSocket over SSL, aka wss:// + + 365932 Produce jetty-websocket aggregate jar for android use + + 365947 Set headers for Auth failure and retry in http-spi + + 366316 Superfluous printStackTrace on 404 + + 366342 Dont persist DosFilter trackers in http session + + 366730 pass the time idle to onIdleExpire + + 367048 test harness for guard on suspended requests + + 367175 SSL 100% CPU spin in case of blocked write and RST. + + 367219 WebSocketClient.open() fails when URI uses default ports. + + 367383 jsp-config element must be returned for + ServletContext.getJspConfigDescriptor + + JETTY-1460 suppress PrintWriter exceptions + + JETTY-1463 websocket D0 parser should return progress even if no fill done + + JETTY-1465 NPE in ContextHandler.toString + +jetty-7.6.0.RC3 - 05 January 2012 + + 367433 added tests to investigate + + 367435 improved D00 test harness + + 367485 HttpExchange canceled before response do not release connection. + + 367502 WebSocket connections should be closed when application context is + stopped. + + 367591 corrected configuration.xml version to 7.6 + + 367635 Added support for start.d directory + + 367638 limit number of form parameters to avoid DOS + + JETTY-1467 close half closed when idle + +jetty-7.6.0.RC2 - 22 December 2011 + + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to + cope + + 364921 Made test less time sensitive for ssl + + 364936 use Resource for opening URL streams + + 365267 NullPointerException in bad Address + + 365375 ResourceHandler should be a HandlerWrapper + + 365750 Support WebSocket over SSL, aka wss:// + + 365932 Produce jetty-websocket aggregate jar for android use + + 365947 Set headers for Auth failure and retry in http-spi + + 366316 Superfluous printStackTrace on 404 + + 366342 Dont persist DosFilter trackers in http session + + 366730 pass the time idle to onIdleExpire + + 367048 test harness for guard on suspended requests + + 367175 SSL 100% CPU spin in case of blocked write and RST. + + 367219 WebSocketClient.open() fails when URI uses default ports. + + JETTY-1460 suppress PrintWriter exceptions + + JETTY-1463 websocket D0 parser should return progress even if no fill done + + JETTY-1465 NPE in ContextHandler.toString + +jetty-8.1.0.RC1 - 06 December 2011 + + 360245 The version of the javax.servlet packages to import is 2.6 instead of + 3.0 + + 365370 ServletHandler can fall through to nested handler + +jetty-8.1.0.RC0 - 30 November 2011 + + 352565 cookie httponly flag ignored + + 353285 ServletSecurity annotation ignored + + 357163 jetty 8 ought to proxy jetty8 javadocs + + 357209 JSP tag listeners not called + + 360051 SocketConnectionTest.testServerClosedConnection is excluded. + + 361135 Allow session cookies to NEVER be marked as secure, even on HTTPS + requests. + + 362249 update shell scripts to jetty8 + + 363878 Add ecj compiler to jetty-8 for jsp + + 364283 can't parse the servlet multipart-config for the web.xml + + 364430 Support web.xml enabled state for servlets + +jetty-7.6.0.RC5 - 20 January 2012 + + 359329 Prevent reinvocation of LoginModule.login with jaspi for already + authed user + + 368632 Remove superfluous removal of org.apache.catalina.jsp_file + + 368633 fixed configure.dtd resource mappings + + 368635 moved lifecycle state reporting from toString to dump + + 368773 process data constraints without realm + + 368787 always set token view to new header buffers in httpparser + + 368821 improved test harness + + 368920 JettyAwareLogger always formats the arguments. + + 368948 POM for jetty-jndi references unknown version for javax.activation. + + 368992 avoid non-blocking flush when writing to avoid setting !_writable + without _writeblocked + + JETTY-1475 made output state fields volatile to provide memory barrier for + non dispatched thread IO + +jetty-7.6.0.RC4 - 13 January 2012 + + 365048 jetty Http client does not send proxy authentication when requesting + a Https-resource through a web-proxy. + + 366774 removed XSS vulnerbility + + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum. + + 367716 simplified idleTimeout logic + + 368035 WebSocketClientFactory does not invoke super.doStop(). + + 368060 do not encode sendRedirect URLs + + 368114 Protect against non-Strings in System properties for Log + + 368189 WebSocketClientFactory should not manage external thread pool. + + 368215 Remove debug from jaspi + + 368240 Improve AggregateLifeCycle handling of shared lifecycles + + 368291 Change warning to info for NoSuchFieldException on + BeanELResolver.properties + +jetty-7.6.0.RC3 - 05 January 2012 + + 367433 added tests to investigate + + 367435 improved D00 test harness + + 367485 HttpExchange canceled before response do not release connection. + + 367502 WebSocket connections should be closed when application context is + stopped. + + 367591 corrected configuration.xml version to 7.6 + + 367635 Added support for start.d directory + + 367638 limit number of form parameters to avoid DOS + + JETTY-1467 close half closed when idle + +jetty-7.6.0.RC2 - 22 December 2011 + + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to + cope + + 364921 Made test less time sensitive for ssl + + 364936 use Resource for opening URL streams + + 365267 NullPointerException in bad Address + + 365375 ResourceHandler should be a HandlerWrapper + + 365750 Support WebSocket over SSL, aka wss:// + + 365932 Produce jetty-websocket aggregate jar for android use + + 365947 Set headers for Auth failure and retry in http-spi + + 366316 Superfluous printStackTrace on 404 + + 366342 Dont persist DosFilter trackers in http session + + 366730 pass the time idle to onIdleExpire + + 367048 test harness for guard on suspended requests + + 367175 SSL 100% CPU spin in case of blocked write and RST. + + 367219 WebSocketClient.open() fails when URI uses default ports. + + JETTY-1460 suppress PrintWriter exceptions + + JETTY-1463 websocket D0 parser should return progress even if no fill done + + JETTY-1465 NPE in ContextHandler.toString + +jetty-7.6.0.RC1 - 04 December 2011 + + 352565 cookie httponly flag ignored + + 353285 ServletSecurity annotation ignored + + 357163 jetty 8 ought to proxy jetty8 javadocs + + 357209 JSP tag listeners not called + + 360051 SocketConnectionTest.testServerClosedConnection is excluded. + + 361135 Allow session cookies to NEVER be marked as secure, even on HTTPS + requests. + + 362249 update shell scripts to jetty8 + + 363878 Add ecj compiler to jetty-8 for jsp + + 364283 can't parse the servlet multipart-config for the web.xml + + 364430 Support web.xml enabled state for servlets + + 365370 ServletHandler can fall through to nested handler + +jetty-7.6.0.RC0 - 29 November 2011 + + 349110 fixed bypass chunk handling + + 360546 handle set count exceeding max integer + + 362111 StdErrLog.isDebugEnabled() returns true too often + + 362113 Improve Test Coverage of org.eclipse.jetty.util.log classes + + 362407 setTrustStore(Resource) -> setTrustStoreResource(R) + + 362447 add setMaxNonceAge() to DigestAuthenticator + + 362468 NPE at line org.eclipse.jetty.io.BufferUtil.putHexInt + + 362614 NPE in accepting connection + + 362626 IllegalStateException thrown when SslContextFactory preconfigured + with SSLContext + + 362696 expand virtual host configuration options to ContextHandler and add + associated test case for new behavior + + 362742 improved UTF8 exception reason + + 363124 improved websocket close handling + + 363381 Throw IllegalStateException if Request uri is null on getServerName + + 363408 GzipFilter should not attempt to compress HTTP status 204 + + 363488 ShutdownHandler use stopper thread + + 363718 Setting java.rmi.server.hostname in jetty-jmx.xml + + 363757 partial fix + + 363785 StdErrLog must use system-dependent EOL. + + 363943 ignore null attribute values + + 363993 EOFException parsing HEAD response in HttpTester + + 364638 SCEP does idle timestamp checking. New setCheckForIdle method + controls onIdleExpired callback. 364921 a second onIdleExpired callback will + result in close rather than a shutdown output. + + 364657 Support HTTP only cookies from standard API + + JETTY-1442 add _hostHeader setter for ProxyRule + + Refactored NIO layer for better half close handling + +jetty-8.0.4.v20111024 - 24 October 2011 + + 358263 JDBCSessionIdManager add setDatasource(DataSource) method + + 358649 Replace existing StdErrLog system properties for DEBUG/IGNORED with + LEVEL instead. + + 360836 Accept parameters with bad UTF-8. Use replacement character + + 360912 CrossOriginFilter does not send Access-Control-Allow-Origin on + responses. 355103 Make allowCredentials default to true in + CrossOriginFilter. + + 360938 Connections closed after a while. + + 361135 secure cookies for sessions + + 361319 Log initialization does not catch correct exceptions on all jvms + + 361325 359292 Allow KeyStore to be set + + 361456 release timer task on connection failed + + 361655 ExecutorThreadPool.isLowOnThreads() returns wrong value. + + JETTY-1444 start threadpool before selector manager + +jetty-7.5.4.v20111024 - 24 October 2011 + + 358263 JDBCSessionIdManager add setDatasource(DataSource) method + + 358649 Replace existing StdErrLog system properties for DEBUG/IGNORED with + LEVEL instead. + + 360836 Accept parameters with bad UTF-8. Use replacement character + + 360912 CrossOriginFilter does not send Access-Control-Allow-Origin on + responses. 355103 Make allowCredentials default to true in + CrossOriginFilter. + + 360938 Connections closed after a while. + + 361319 Log initialization does not catch correct exceptions on all jvms + + 361325 359292 Allow KeyStore to be set + + 361456 release timer task on connection failed + + 361655 ExecutorThreadPool.isLowOnThreads() returns wrong value. + + JETTY-1444 start threadpool before selector manager + +jetty-8.0.3.v20111011 - 11 October 2011 + + 348978 migrate jetty-http-spi + + 358649 StdErrLog system properties for package/class logging LEVEL. + +jetty-8.0.2.v20111006 - 06 October 2011 + + 336443 add missing comma in DigestAuthenticator string + + 342161 ScannerTest fails intermittently on Mac OS X + + 346419 testing HttpClient FDs + + 353267 Request._parameters initialization bug + + 353509 jetty-client unit tests are running too long + + 353627 Basic Auth checks that Basic method has been send + + 356144 Allow SelectorManager thread priority to be set + + 356274 Start SSL socket factory in call to open() + + 357163 jetty 8 ought to proxy jetty8 javadocs + + 357178 websockets draft 14 support + + 357188 Send content buffer directly + + 357209 JSP tag listeners not called + + 357216 Logging via Log4J does not expand braces in format strings + + 357240 more half close refinements + + 357338 remove debug + + 357672 resolve issue with serializing pojos with mongodb session manager, + thanks to john simone for the discovery and fix + + 357959 Include javadoc in distribution + + 358027 NullPointerException in ResourceHandler with jetty-stylesheet.css + + 358035 idle time only active if > 0 + + 358147 Add catch for UnknownHostException to fix leaky file descriptor in + client + + 358164 Dispatch from servlet to handler + + 358263 add method for osgi users to register a driver as Class.forName does + not work for them + + 358649 StdErrLog system properties for package/class logging LEVEL. + + 358674 Still allows sslv3 for now + + 358687 Updated jsp does not scan for system tlds Fixed pattern. + + 358784 JSP broken on Java 1.5 + + 358925 bit more javadoc on usage + + 358959 File descriptor leak with UnresolvedAddressException + + 359309 adjust previous test for servletPath to include pathInfo + + 359673 updated websocket version handling + + 359675 Principal != String, fix for issue in property file login manager + + 360051 SocketConnectionTest.testServerClosedConnection is excluded. + + 360066 jsps referenced in web.xml elements do not compile + + JETTY-1130 Access Sessions from HashSessionIdManager + + JETTY-1277 Fixed sendRedirect encoding of relative locations + + JETTY-1322 idle sweeper checks for closed endp + + JETTY-1377 extra logging for busy selector + + JETTY-1378 new sys property for the latest jsp-impl to force the use of the + JDTCompiler when running in OSGi. + + JETTY-1414 applied to PropertyUserStore + + JETTY-1415 Start/Stop Server and Client only once in test, code format + + JETTY-1420 Set Host header for new request in RedirectListener + + JETTY-1421 Implement RedirectListener.onException,onConnectionFailed + + JETTY-1423 force connection to be closed returned + + JETTY-1430 local JNDI contexts don't carry environment + + JETTY-1434 Add a jsp that exercises jstl. + + JETTY-1439 space in directory installation path causes classloader problem + +jetty-7.5.3.v20111011 - 11 October 2011 + + 348978 migrate jetty-http-spi + + 358649 StdErrLog system properties for package/class logging LEVEL. + +jetty-7.5.2.v20111006 - 06 October 2011 + + 336443 check nonce count is increasing + + 342161 ScannerTest fails intermittently on Mac OS X + + 346419 testing HttpClient FDs + + 353267 Request._parameters initialization bug + + 353509 jetty-client unit tests are running too long + + 353627 Basic Auth checks that Basic method has been send + + 356144 Allow SelectorManager thread priority to be set + + 356274 Start SSL socket factory in call to open() + + 357178 websockets draft 14 support + + 357188 Send content buffer directly + + 357209 JSP tag listeners not called + + 357216 Logging via Log4J does not expand braces in format strings + + 357240 more half close refinements + + 357338 remove debug + + 357672 resolve issue with serializing pojos with mongodb session manager, + thanks to john simone for the discovery and fix + + 357959 Include javadoc in distribution + + 358027 NullPointerException in ResourceHandler with jetty-stylesheet.css + + 358035 idle time only active if > 0 + + 358147 Add catch for UnknownHostException to fix leaky file descriptor in + client + + 358164 Dispatch from servlet to handler + + 358263 add method for osgi users to register a driver as Class.forName does + not work for them + + 358649 StdErrLog system properties for package/class logging LEVEL. + + 358674 Still allows sslv3 for now + + 358687 Updated jsp does not scan for system tlds Fixed pattern. + + 358784 JSP broken on Java 1.5 + + 358925 bit more javadoc on usage + + 358959 File descriptor leak with UnresolvedAddressException + + 359309 adjust previous test for servletPath to include pathInfo + + 359673 updated websocket version handling + + 359675 Principal != String, fix for issue in property file login manager + + 360051 SocketConnectionTest.testServerClosedConnection is excluded. + + 360066 jsps referenced in web.xml elements do not compile + + JETTY-1130 Access Sessions from HashSessionIdManager + + JETTY-1277 Fixed sendRedirect encoding of relative locations + + JETTY-1322 idle sweeper checks for closed endp + + JETTY-1377 extra logging for busy selector + + JETTY-1378 new sys property for the latest jsp-impl to force the use of the + JDTCompiler when running in OSGi. + + JETTY-1414 applied to PropertyUserStore + + JETTY-1415 Start/Stop Server and Client only once in test, code format + + JETTY-1420 Set Host header for new request in RedirectListener + + JETTY-1421 Implement RedirectListener.onException,onConnectionFailed + + JETTY-1423 force connection to be closed returned + + JETTY-1430 local JNDI contexts don't carry environment + + JETTY-1434 Add a jsp that exercises jstl. + + JETTY-1439 space in directory installation path causes classloader problem + +jetty-8.0.1.v20110908 - 08 September 2011 + + 350634 Added Resource.newResource(File) + + 356190 fix monodb tests for changed test api + + 356428 removed timed waits from test + + 356693 reduce visibility to webapp of websocket implementations + + 356695 jetty server jars are provided for websockets + + 356726 Instead of the sessionDestroyed called sessionCreated after + invalidate session + + 356751 Add null protection to ServletContextHandler.doStop + + 356823 correctly decode close codes. Send not utf-8 close code. + + 357058 Acceptor thread blocking + +jetty-7.5.1.v20110908 - 08 September 2011 + + 350634 Added Resource.newResource(File) + + 356190 fix monodb tests for changed test api + + 356428 removed timed waits from test + + 356693 reduce visibility to webapp of websocket implementations + + 356695 jetty server jars are provided for websockets + + 356726 Instead of the sessionDestroyed called sessionCreated after + invalidate session + + 356751 Add null protection to ServletContextHandler.doStop + + 356823 correctly decode close codes. Send not utf-8 close code. + + 357058 Acceptor thread blocking + +jetty-8.0.0.v20110901 - 01 September 2011 + + 352565 cookie httponly flag ignored + + 353073 better warnings + + 353285 ServletSecurity annotation ignored + + 356421 Upgraded websocket to draft 13 support + +jetty-7.5.0.v20110901 - 01 September 2011 + + 353073 better warnings + + 356421 Upgraded websocket to draft 13 support + +jetty-7.5.0.RC2 - 30 August 2011 + + 293739 Hide stacks in named log testing. Various other minor log cleanups in + output. + + 352188 TestClient correctly processes --host option in jetty-websocket + + 352222 Moved JmxMonitor functionality from Codehaus + + 353014 TimeoutExchangeTest run time reduced + + 353073 deprecated non factory method for websocket clients + + 353192 Better warning for classes of wrong type + + 353623 Added new methods to HttpExchange + + 353624 HttpURI accepts java.net.URI object in constructor + + 354080 ServletContextHandler allows to replace any subordinate handler when + restarted + + 355478 set public to HashedSession, looks like honest mistake and not by + design to be this way + + 355854 remove automatic conversion in favor of issuing a warning for + jetty-web.xml that can't be processed + + 356128 Moved integration tests from jetty-monitor to test-integration module + + 356137 Upgrade to jsp implementation version 2.1.3-b10 + + 356144 added SelectorManager.setSelectorPriorityDelta(int) + + JETTY-1410 handle 1xx in similar fashion to 401s and 302s + +jetty-7.5.0.RC1 - 19 August 2011 + + 276670 SLF4J loggers show correct location information + + 335001 Eliminate expected exceptions from log when running in JBoss + + 355103 Make allowCredentials default to true in CrossOriginFilter + + 355162 Allow creating an empty resource collection + + JETTY-1410 HTTP client handles CONTINUE 100 response correctly + + JETTY-1414 HashLoginService doesn't refresh realm if specified config + filename is not an absolute platform specific value + +jetty-8.0.0.RC0 - 16 August 2011 + + 352565 cookie httponly flag ignored + + 353285 ServletSecurity annotation ignored + + Enable annotations by default + + Merge from jetty-7.4.3 + +jetty-8.0.0.M3 - 27 May 2011 + + 324505 Implement API login + + 335500 request.getParts() throws a NullPointerException + + 343472 isUserInRole does not prevent subsequent login call. + + 346180 jsp-2.2 support + + Updated to jetty-7.4.2.v20110526 + +jetty-7.5.0.RC0 - 15 August 2011 + + 298502 Handle 200 Connect responses with no content-length + + 347484 / - > ${/} in some paths in grant codebases + + 349005 add javadoc detailing the convenience hack of removing leading /'s + + 351516 Refactored sessions to better support nosql session managers + + 351576 Do not use deprecated method File.toURL() + + 352046 Need try/catch around features set in XmlParser + + 352133 Generally resolve java 1.5isms + + 352176 xml parsing on startElement should be more flexible on using qName or + localName + + 352421 HttpURI paths beginning with '.' + + 352684 Implemented spinning thread analyzer + + 352786 GzipFilter fails to pass parameters to GzipResponseWrapper + + 352999 ExpireTest running too long + + 353073 WebSocketClient + + 353095 maven-jetty-plugin: PermGen leak due to javax.el.BeanELResolver + + 353165 addJars can follow symbolic link jar files + + 353210 Bundle-Version in o.e.j.o.boot.logback fix + + 353465 JAASLoginService ignores callbackHandlerClass + + 353563 HttpDestinationQueueTest too slow + + 353862 Improve performance of QuotedStringTokenizer.quote() + + 354014 Content-Length is passed to wrapped response in GZipFilter + + 354204 Charset encodings property file not used + + 354397 RewriteRegexRule handles special characters in regex group + + 354466 Typo in example config of jetty-plus.xml + +jetty-7.4.5.v20110725 - 25 July 2011 + + 347484 / - > ${/} in some paths in grant codebases + + 352133 resolve some 1.5isms + + 352421 HttpURI paths beginning with '.' + + 352786 GzipFilter fails to pass parameters to GzipResponseWrapper + +jetty-7.4.4.v20110707 - 07 July 2011 + + 308851 Converted all jetty-client module tests to JUnit 4 + + 345268 JDBCSessionManager does not work with maxInactiveInterval = -1 + + 350397 SelectChannelConnector does not shutdown gracefully + + 350634 Reverted FileResource constructor changes + + 351039 Forward dispatch should retain locale + + 351199 HttpServletResponse.encodeURL() wrongly encodes an url without path + when cookies are disabled + + JETTY-1153 Default charset/encoding of HTTP POST requests + + JETTY-1380 Jetty Rewrite example does not work in Hightide + +jetty-7.4.3.v20110701 - 01 July 2011 + + 295832 ProxyServlet more extensible and configurable + + 302566 GZIP handler for embedded Jetty servers + + 308851 Converted HttpExchangeTest and related tests to JUnit 4 + + 324704 JDBC Session Manager reloading session + + 332200 Eliminate expected exceptions from log while using + org.eclipse.jetty.jmx bundle + + 347468 o.e.j.deploy.binding.GlobalWebappConfigBindingTest fails on Windows + platform + + 347617 Dynamically install/update/remove OSGi bundles discovered in the + contexts folder + + 347717 start.jar destroys dependent child of --exec + + 347889 OSGi should follow directive visibility:=reexport for + META-INF/web-fragments and resources + + 347898 Close channel on JVM exceptions + + 348652 jetty.sh starts two unix processes + + 348935 Close A tag in directory listing + + 349344 Passing empty query string to UrlEncoded#decodeTo(String, MultiMap, + String) does not yield an empty map + + 349738 set buffer sizes for http client in proxy servlet + + 349870 proxy servlet protect continuation against fast failing exchanges + + 349896 SCEP supports zero idleTimeout + + 349897 draft -09 websockets + + 349997 MBeanContainer uses weak references + + 350533 Add "Origin" to the list of allowed headers in CrossOriginFilter + + 350634 Cleanup FileResource construction + + 350642 Don't close SCEP during NIOBuffer manipulation + + JETTY-1342 Recreate selector in change task + + JETTY-1385 NPE in jetty client's + HTttpExchange.setRequestContentSource(InputStream) + + JETTY-1390 RewriteHandler handles encoded URIs + +jetty-7.4.2.v20110526 + + 334443 Improve the ability to specify extra class paths using the Jetty + Maven Plugin + + 336220 tmp directory is not set if you reload a webapp with + jetty-maven-plugin + + 338364 Fixed expires header for set cookies + + 345615 Enable SSL Session caching + + 345729 binding for managing server and system classes globally + + 345763 Source file is updated during the build + + 345873 Update jetty-ssl.xml to new style + + 345900 Handle IPv6 with default port + + 346014 Fixed full HttpGenerator + + 346124 ServletContext resources paths not resolved correctly when using UNC + shares + + 346179 o.e.j.util.ScannerTest fails on MacOS X platform + + 346181 o.e.j.server.StressTest stalls on MacOS X platform + + 346614 HttpConnection.handle() spins in case of SSL truncation attacks + + 346764 OrderedGroupBinding deployment binding + + 346998 AbstractLifeCycle.isRunning() returns false if state changes from + STARTING to STARTED during call + + 347137 Allow SSL renegotiations by default in HttpClient + + 374174 Consistent mbean names + + JETTY-1146 Encode jsessionid in sendRedirect + + JETTY-1342 Recreate selector if wakeup throws JVM bug + +jetty-7.4.1.v20110513 + + 288563 remove unsupported and deprecated --secure option + + 332907 Add context property to ObjectName of JMX MBeans + + 336056 Ability to override the computation of the ContextHandler to deploy + the DefaultServlet on the HttpService + + 340040 Support for a total timeout + + 343083 Set nested dispatch type and connection + + 343172 Check package implementor for version + + 343277 add support for a context white list + + 343352 make sure that jetty.osgi.boot is activated when a WAB is registered + + 343482 refactored overlay deployer layout to use WAR layout + + 343567 HttpClient does not limit the destination's exchange queue + + 343680 Handle OSGi bundle jars not ending in ".war" + + 343707 'REQUEST' is printed on console for each incoming HTTP request + + 343923 flush timeouts applied to outer loop + + 343936 Session idle calls unbind and remove listeners + + 344059 Websockets draft-07 + + 344067 Add support for OSGi fragment bundles to add static resources to + web-bundles + + 344513 Attempting to set ConfigurationClasses in jetty-web.xml causes NPE + + 344529 Ability to customize the error handling of the OSGi HttpService + + 345047 Readded deprecated ScanningAppDeployer#setMonitoredDir + + 345290 Weak references from SessionIdManager. HashSessionManager cleanup. + + 345543 Always close endpoint on SSLException + + 345656 Disambiguate SslContextFactory#validateCerts property + + 345679 Allow setting an initialized KeyStore as keystore/truststore of + SslContextFactory + + 345704 jetty-nested works with forwarded SSL in cloudfoundry + + JETTY-954 WebAppContext eats any start exceptions instead of stopping the + server load + + JETTY-1314 Handle bad URI encodings + + JETTY-1324 Tested not using CESU-8 instead of UTF-8 + + JETTY-1326 Invoker names not hashCode based + + JETTY-1343 IllegalArgumentException for bad % encodings + + JETTY-1347 Updated ServletHander javadoc + +jetty-7.4.0.v20110414 + + 342504 Scanner Listener + + 342700 refine websocket API for anticipated changes + + JETTY-1362 Set root cause of UnavailableException + + Various test harness cleanups to avoid random failures + +jetty-7.4.0.RC0 + + 324110 Added test harnesses for merging of QueryStrings. + + 337685 Update websocket API in preparation for draft -07 + + 338627 HashSessionManager.getIdleSavePeriod returns milliseconds instead of + seconds + + 338807 Ignore content length in 1xx, 204, 304 responses + + 338819 Externally control Deployment Manager application lifecycle + + 339084 Fixed NPE with servlet 3.0 async listener + + 339150 Validate client certificate when it is used for authentication + + 339187 In the OSGi manifest of the jetty-all-server aggregate, mark + javax.annotation as optional + + 339543 Add configuration options for Certificate Revocation checking + + 340265 Improve handling of io shutdown in SSL + + 340621 Added SizedThreadPool interface + + 340636 HashSessionManager lazy loads all sessions + + 340838 Update ConnectHandler to perform half closes properly + + 340878 Integrations should be able to load their own keystores + + 340920 Dynamically assign RMI registry port for integration testing + + 340949 Scanner delays file notifications until files are stable + + 341006 Move inner enums out into separate file + + 341105 Stack trace is printed for an ignored exception + + 341145 WebAppContext MBean attribute serverClasses returns empty value + + 341171 Locking in HttpDestination blocks all requests to the same address + + 341206 Stop order is wrong in HandlerWrapper + + 341255 org.eclipse.http usage in AJP/SessionId linkage + + 341386 Remote close not detected by HttpClient + + 341394 Remove 'Unavailable' JMX attributes of WebAppContext MBean + + 341439 Blocking HttpClient does not use soTimeout for timeouts + + 341561 Exception when adding o.e.j.s.DoSFilter as managed attribute + + 341692 Fixed deadlock if stopped while starting + + 341694 Disable AJP buffer resizing + + 341726 JSONPojoConverter handles characters + + 341736 Split jetty-nested out of war module + + 341850 Protect QTP dump from bad stacks + + 341992 Overlayed context deployer + + JETTY-1245 Pooled Buffers implementation + + JETTY-1354 Added jetty-nested + + Added extra session removal test + + Ensure generated fragment names are unique + +jetty-8.0.0.M2 - 16 November 2010 + + 320073 Reconsile configuration mechanism + + 321068 JSF2 fails to initialize + + 324493 Registration init parameter handling null check, setInitParameters + additive + + 324505 Request.login method must throw ServletException if it cant login + + 324872 allow disabling listener restriction from using *Registration + interfaces + + 327416 Change meaning of @HandlesTypes in line with latest interpretation by + JSR315 + + 327489 Change meaning of @MultipartConfig to match servlet spec 3.0 + maintenance release 3.0a + + 328008 Handle update to Servlet Spec 3 Section 8.2.3.h.ii + + 330188 Reject web-fragment.xml with same as another already loaded + one + + 330208 Support new wording on servlet-mapping and filter-mapping merging + from servlet3.0a + + 330292 request.getParts() returns only one part when the name is the same + + Update to jetty-7.2.1.v20101111 + +jetty-7.3.1.v20110307 - 07 March 2011 + + 316382 Support a more strict SSL option with certificates + + 333481 Handle UCS-4 codepoints in decode and encode + + 335329 Moved blocking timeout handling to outside try catch + + 336668 policy supports cert validation + + 336691 Possible wrong length returned by ChannelEndPoint.flush() in case of + RandomAccessFileBuffer + + 336781 If xml parser is not validating, turn off external dtd resolution + + 336793 Tee data filled and flushed from endpoint + + 337258 Scanner start and end cycle notification + + 337268 Allow specifying alias of a certificate to be used by SSL connector + + 337270 Shared Timer for session management + + 337271 Flush SSL endpoint when dispatch thread held forever + + 337678 Readded optional async connection mode for HttpClient + + 337685 Work in progress on draft 6 websockets + + 337746 Fixed Session deIdle recursion + + 337784 Improve HashSessionManager for session migrations + + 337878 Extra tests of security constraints + + 337896 HttpExchange.timeout does not override HttpClient.timeout + + 337898 set client HttpConnection max idle time from exchange timeout + + 338035 Default acceptors 0.25*CPUs and improved selector/acceptor thread + names. + + 338068 Leaking ConstraintMappings on redeploy + + 338092 ProxyServlet leaks memory + + 338607 Removed managed attributes when context is stopped + + 338819 Externally control Deployment Manager application lifecycle + + JETTY-1304 Allow quoted boundaries in Multipart filter + + JETTY-1317 More elegent handling of bad URIs in requests + + JETTY-1331 Allow alternate XML configuration processors (eg spring) + + JETTY-1333 HttpClient _timeout and _soTimeout is messed up + + JETTY-1335 HttpClient's SelectConnector clean-up + + JETTY-1337 Workname cannot contain '.' + + JETTY-1338 Trust default SecureRandom seed + +jetty-7.3.0.v20110203 - 03 February 2011 + + 296978 standardizing various Testing Util Classes to jetty-test-helper + + 319178 test failure fix in jetty-util on windows + + 320457 add SPNEGO support + + 324505 Implement API login + + 328872 Multi Jetty xml files not loading if directory is referenced in + jetty.conf + + 329746 client option to set just truststore and use strict ssl context + + 331803 Update XML configuration files to use proper arguments for startup + command in examples + + 332179 Fixed formatting of negative dates + + 332432 Scanner.java now always scanning the canonical form of File + + 332517 Improved DefaultServlet debug + + 332703 Cleanup context scope JNDI at stop + + 332796 Annotations inheritance does not work with jetty7 + + 332799 100% CPU on redeploy session invalidation + + 332937 Added Destroyable Dumpable interfaces and reworked dependent + lifecycles, specially of JNDI + + 333247 fix api compat issue in ConstraintSecurityHandler + + 333415 wired up HttpInput.available and added test harnesses + + 333481 Handle UTF-32 codepoints in decode and encode + + 333608 tlds defined in web.xml are not picked up + + 333679 Refactored jetty-jmx. Moved mbeans to modules + + 333717 HttpExchange able to return local address used + + 333771 System properties are not available inside XML configuration file by + using the 'property' tag + + 333875 Monitor public constructor + + 333892 Improved JVM bug detection + + 334062 It should be possible to embed in the jetty.home.bundle the ssl + keystore files + + 334229 javax-security needs to import the package javax.security.cert in its + OSGi manifest + + 334311 fix buffer reuse issue in CachedExchange + + 335329 Stop SSL spin during handshake and renogotiate + + 335361 Fixed 'jetty.sh check' to show current PID when JETTY_PID env. + variable is set + + 335641 Cleaned up dispatch handling to avoid key.interestOps==0 when + undispatched + + 335681 Improve ChannelEndPoint.close() to avoid spinning + + 335836 Race when updating SelectChannelEndPoint._dispatched + + JETTY-1259 NullPointerException in JDBCSessionIdManager when invalidating + session (further update) + +jetty-7.2.2.v20101205 - 05 December 2010 + + 328789 Clean up tmp files from test harnesses + + 330188 Reject web-fragment.xml with same as another already loaded + one + + 330208 Support new wording on servlet-mapping and filter-mapping merging + from servlet3.0a + + 330210 Improve performance of writing large bytes arrays + + 330229 Jetty tries to parse META-INF/*.tld when jsp-api is not on classpath, + causing DTD entity resoluton to fail + + 330265 start.jar --stop kills --exec subprocess + + 330417 Atomic PUT in PutFilter + + 330419 Reloading webapp duplicates StandardDescriptorProcessor + + 330686 OSGi: Make org.eclipse.jetty.jsp-2.1 a fragment of + org.apache.jasper.glassfish + + 330732 Removed System.err debugging + + 330764 Command line properties passed to start.jar --exec + + 331230 Fixed low thread warnings when acceptors>threadpool + + 331461 Fixed idle timeout for unflushed HTTP/1.0 + + 331567 IPAccessHandlerTest failed on MacOS fix + + 331703 Fixed failing OSGI test TestJettyOSGiBootWithJsp.java on MacOSX + + JETTY-1297 Improved matching of vhosts so that a vhost match has priority + + JETTY-1307 Check that JarFileResource directories end with / + + JETTY-1308 327109 (re)fixed AJP handling of empty packets + +jetty-7.2.1.v20101111 - 11 November 2010 + + 324679 Fixed dedection of write before static content + + 328008 Handle update to Servlet Spec 3 Section 8.2.3.h.ii + + 328199 Ensure blocking connectors always close socket + + 328205 Improved SelectManager stopping + + 328306 Serialization of FormAuthentication + + 328332 Response.getContentType works with setHeader + + 328523 Fixed overloaded setters in AppProvider + + 328778 Improved javadoc for secure session cookies + + 328782 allow per connection max idle time to be set + + 328885 web overrides do not override + + 328988 Idle saving of session values + + 329180 Spin check for Selector to stop + + 329410 Enforce XmlConfiguration properties as Map + + 329602 only clear ServletContext attributes on doStop + + 329642 Concurrent modification exception in Deployment Manager + + 329643 Improved deployment of resource collections + + JETTY-748 Prevent race close of socket by old acceptor threads + + JETTY-1291 Extract query parameters even if POST content consumed + + JETTY-1295 Contexts mixed up when hot-deploying on virtual hosts + + JETTY-1297 Make ServletContext.getContext(String) virtual host aware + +jetty-6.1.26 - 10 November 2010 + + JETTY-748 Prevent race close of socket by old acceptor threads + + JETTY-1239 HTAccessHandler [allow from 127.0.0.1] does not work + + JETTY-1291 Extract query parameters even if POST content consumed + + JETTY-1293 Avoid usage of String.split + + JETTY-1296 Always clear changes list in selectManager + +jetty-6.1.26.RC0 - 20 October 2010 + + 325468 Clean work webapp dir before unpack + + 327109 Fixed AJP handling of empty packets + + 327562 Implement all X-Forwarded headers in ProxyServlet + + JETTY-547 Improved usage of shutdownOutput before close. + + JETTY-912 add per exchange timeout + + JETTY-1051 offer jetty.skip flag for maven plugin + + JETTY-1096 exclude maven and plexus classes from jetty plugin + + JETTY-1248 Infinite loop creating temp MultiPart files + + JETTY-1264 Idle timer deadlock + + JETTY-1271 Handle unavailable request + + JETTY-1278 J2se6 SPI filter handling fix + + JETTY-1283 Allow JSONPojoConvertorFactory to set fromJSON + + JETTY-1287 rewrite handler thread safe issue resolved + + JETTY-1288 info when atypical classloader set to WebAppContext + + JETTY-1289 MRU cache for filter chains + + JETTY-1292 close input streams after keystore.load() + +jetty-7.2.0.v20101020 - 20 October 2010 + + 289540 added javadoc into distribution + + 297154 add source distribution artifact + + 323985 Xmlconfiguration pulls start.jar config properties + + 324369 Improved handling of multiple versions of + draft-ietf-hybi-thewebsocketprotocol + + 326734 Configure Digest maxNonceAge with Security handler init param + + 327109 Fixed AJP handling of empty packets + + 327183 Allow better configurability of HttpClient for TLS/SSL + + 327469 removed needless java6 dependencies + + 327562 Implement all X-Forwarded headers in ProxyServlet + + 327601 Multipart Filter handles quoted tokens + + 327725 Nested ResourceCaches + + 328199 Ensure blocking connectors always close socket + + 328205 Improved SelectManager stopping + + 328273 Added serializable to default user identity + + JETTY-1288 Info statement when atypical classloader set on WebAppContext + + JETTY-1289 LRU cache for filter chains + +jetty-7.2.0.RC0 - 01 October 2010 + + 314087 Simplified SelectorManager + + 319334 Concurrent, sharable ResourceCache + + 319370 WebAppClassLoader.Context + + 319444 Two nulls are appended to log statements from ContextHanler$Context + + 320073 Reconsile configuration mechanism + + 320112 Websocket in aggregate jars + + 320264 Removed duplicate mime.property entries + + 320457 Added rfc2045 support to B64Code + + 321232 BasicAuthenticator ignores bad Authorization header. + + 321307 HashSessionManager calls passivation listeners. + + 321730 SelectChannelEndPoint prints to System.err + + 321735 HttpClient onException called for buffer overflow. + + 322448 Added jetty-dir.css for directory listings + + 322575 NPE in HotSwapHandler if old handler null + + 322683 RewriteHandler thread safety + + 323196 org.mortbay properties to org.eclipse + + 323435 MovedContextHandler permanent redirection + + 323464 IPv6 localhost with no Host header + + 324110 Merge async dispatch parameters + + 324158 Durable download or Orbit jars + + 324260 Jetty-6 continuations handle complete calls + + 324359 illegal actions on AsyncContext should not change its state. + + 324360 validate input on getResource since loop logic obscures subclass + input validation. + + 324369 Implement draft-ietf-hybi-thewebsocketprotocol-01 + + 324377 Allow dispatch of ServletRequest and ServletResponse + + 324379 Change content type after getWriter + + 324501 Fire RequestListener.requestDestroyed in last-to-first order. + + 324601 Check session expiry on access + + 324679 Allow filter to write before static content + + 324811 NPE in Server.dump + + 324812 restore WebAppContext constructor used by geronimo integration + + 325072 include to DefaultServlet of missing file throws + FileNotFoundException + + 325105 websocket ondisconnect fixed + + 325128 websocket send during onConnect + + 325468 Clean work webapp dir before unpack + + 326612 Handle X-Forwarded-Proto header + + JETTY-912 added per exchange timeout api + + JETTY-1063 Plugin problems with spaces in classpath resource references + + JETTY-1245 Do not use direct buffers with NIO SSL + + JETTY-1249 Apply max idle time to all connectors + + JETTY-1250 Parallel start of HandlerCollection + + JETTY-1256 annotation and jta jars from Orbit + + JETTY-1259 NullPointerException in JDBCSessionIdManager when invalidating + session + + JETTY-1261 errant listener usage in StandardDescriptorProcessor + + JETTY-1263 JDBCSessionIdManager table creation fails on Oracle + + JETTY-1265 Reason field option in client response + + JETTY-1266 Destroy sessions before filters/servlets + + JETTY-1268 Form Auth saves POST data + + JETTY-1269 Improve log multithreadedness + + JETTY-1270 Websocket closed endp protection + + JETTY-1271 handled unavailable exception + + JETTY-1279 Make jetty-plus.xml enable plus features for all webapps by + default + + JETTY-1281 Create new session after authentication + + JETTY-1283 JSONPojoConvertorFactory can turn off fromJSON + + Added ignore to Logger interface + + Fix jetty-plus.xml for new configuration names + + Improved debug dump + +jetty-7.1.6.v20100715 + + 319519 Warn about duplicate configuration files + + 319655 Reset HEAD status + + JETTY-1247 synchronize recylcing of SSL NIO buffers + + JETTY-1248 fix parsing of bad multiparts + + JETTY-1249 Apply max idle time to all connectors + + JETTY-1251 Replace then close selector for JVM bugs + +jetty-8.0.0.M1 - 12 July 2010 + + 306350 Ensure jars excluded by ordering are not scanned for annotations + + JETTY-1224 Change jetty-8 merge rules for fragment descriptors and + annotations + + Ensure in web.xml overrides relative in + fragments + + Ensure empty implies exclusion of all fragments + + Ensure servlet-api jar class inheritance hierarchy is scanned + +jetty-7.1.5.v20100705 + + 288194 Add blacklist/whitelist to ProxyServlet and ProxyHandler + + 296570 EOFException for HttpExchange when HttpClient.stop called. + + 311550 The WebAppProvider should allow setTempDirectory + + 316449 Websocket disconnect fix + + 316584 Exception on startup if temp path has spaces and extractWAR=false + + 316597 Removed null check and fixed name in Resource#hrefEncodeURI + + 316909 CNFE: org.xml.sax.SAXException on org.eclipse.jetty.osgi.boot start + with jsp fragment + + 316970 jetty.sh fails to find JETTY_HOME in standard directories + + 316973 jetty.sh claims java installation is invalid + + 316976 removed quotes of JAVA_OPTIONS in jetty.sh + + 317007 Unable to run Jetty OSGi when + -Dosgi.compatibility.bootdelegation=false + + 317019 Date HTTP header not sent for HTTP/1.0 requests + + 317231 Ability to configure jetty with a fragment bundle that contains + etc/jetty.xml + + 317759 Allow roles and constraints to be added after init + + 317906 OPTIONS correctly handles TRACE + + 318308 Correct quoting of unicode control characters + + 318470 unboxing NPE protection in HttpConnection + + 318551 Optional uncheck Printwriter + + 319060 Support web-bundles that are not expanded (bundle is zipped) + + JETTY-1237 Save local/remote address to be available after close + + Update ecj to 3.6 Helios release drop + +jetty-6.1.25 - 26 July 2010 + + 320264 Removed duplicate mime.property entries + + JETTY-1212 Long content lengths + + JETTY-1214 Avoid ISE when scavenging invalid session + + JETTY-1223 DefaultServlet: NPE when setting relativeResourceBase and + resourceBase is not set + + JETTY-1226 javax.activation needs to be listed in the system classes + + JETTY-1237 Remember local/remote details of endpoint + + JETTY-1251 protected against closed selector + + COMETD-112 if two threads create the same channel, then create events may + occur after subscribe events + + Jetty-6 is now in maintenance mode. + +jetty-7.1.4.v20100610 + + 292326 Stop continuations if server is stopped. + + 292814 Make QoSFilter and DoSFilter JMX manageable + + 293222 Improve request log to handle/show asynchronous latency + + 294212 Can not customize session cookie path + + 295715 AbstractSessionManager decoupled from Context + + 298551 SslSocketConnector does not need keystore stream + + 301608 Deregister shutdown hooks + + 302350 org.eclipse.jetty.server.NCSARequestLog is missing JavaDoc + + 303661 jetty.sh failes if JETTY_HOME is not writeable + + 304100 Better document JMX setup in jetty-jmx.xml + + 305300 AsyncContext.start dispatches runnable + + 314299 Create test harness for JDBCLoginService + + 314581 Implement the Sec-Websocket handshake + + 315190 CrossOriginFilter avoid headers not understood by WebSocket + + 315687 included init script fails to test for JETTY_HOME as empty + + 315715 Improved Cookie version handling. Server.setMaxCookieVersion + + 315744 Fixed STOP.PORT and STOP.KEY in start.jar + + 315748 Removed --fromDaemon from start.jar (replaced with --daemon) + + 315925 Improved context xml configuration handling + + 315995 Incorrect package name in system classes list + + 316119 Fixed idleTimeout for SocketEndPoint + + 316254 Implement @DeclareRoles + + 316334 Breaking change on org.eclipse.jetty.client.HttpExchange + + 316399 Debug output in MultiPartFilter + + 316413 Restarting webapp for packed war fails + + 316557 OSGi HttpService failure due to undeployed context handlers + + JETTY-547 Delay close after shutdown until request read + + JETTY-1231 Support context request log handler + +jetty-7.1.3.v20100526 + + 296567 HttpClient RedirectListener handles new HttpDestination + + 297598 JDBCLoginService uses hardcoded credential class + + 305898 Websocket handles query string in URI + + 307457 Exchanges are left unhandled when connection is lost + + 313205 Unable to run test-jdbc-sessions tests + + 314009 jetty.xml configuration file on command line + + 314177 JSTL support is broken + + 314459 support maven3 for builds + +jetty-7.1.2.v20100523 + + 308866 Update test suite to JUnit4 - Module jetty-util + + 312948 Recycle SSL crypto buffers + + 313196 randomly allocate ports for session test. + + 313278 Implement octet ranges in IPAccessHandler + + 313336 secure websockets + + 314009 updated README.txt + + Update links to jetty website and wiki on test webapp + +jetty-7.1.1.v20100517 + + 302344 Make the list of available contexts if root context is not configured + optional + + 304803 Remove TypeUtil Integer and Long caches + + 306226 HttpClient should allow changing the keystore and truststore type + + 308850 Update test suite to JUnit4 - Module jetty-annotations + + 308853 Update test suite to JUnit4 - Module jetty-deploy + + 308854 Update test suite to JUnit4 - Module jetty-http + + 308855 Update test suite to JUnit4 - Module jetty-io + + 308856 Update test suite to JUnit4 - Module jetty-jmx + + 308857 Update test suite to JUnit4 - Module jetty-jndi + + 308858 Update test suite to JUnit4 - Module jetty-plus + + 308859 Update test suite to JUnit4 - Module jetty-policy + + 308860 Update test suite to JUnit4 - Module jetty-rewrite + + 308862 Update test suite to JUnit4 - Module jetty-server + + 308863 Update test suite to JUnit4 - Module jetty-servlet + + 308867 Update test suite to JUnit4 - Module jetty-webapp + + 310918 Fixed write blocking for client HttpConnection + + 312526 Protect shutdown thread initialization during shutdown + +jetty-7.1.0 - 05 May 2010 + + 306353 fixed cross context dispatch to root context. + + 311154 Added deprecated StringBuffer API for backwards compatibility + + 311554 Protect shutdown thread from Server#doStop + + 312243 Optimized timeout handling + +jetty-7.1.0.RC1 - 05 May 2010 + + 286889 Allow System and Server classes to be set on Server instance and when + applied to all webapps + + 291448 SessionManager has isCheckingRemoteSessionIdEncoding + + 296650 JETTY-1198 reset idle timeout on request body chunks + + 297104 HTTP CONNECT does not work correct with SSL destinations + + 306782 Close connection when expected 100 continues is not sent + + 308848 Update test suite to JUnit4 - Module jetty-ajp + + 308861 Update test suite to JUnit4 - Module jetty-security + + 308864 Update test suite to JUnit4 - Module jetty-servlets + + 308865 Update test suite to JUnit4 - Module jetty-start + + 308868 Update test suite to JUnit4 - Module jetty-websocket + + 308869 Update test suite to JUnit4 - Module jetty-xml + + 309153 Hide extracted WEB-INF/lib when running a non-extracted war + + 309369 Added WebSocketLoadTest + + 309686 Fixed response buffers usage + + 310094 Improved start.jar options handling and configs + + 310382 NPE protection when WAR is not a file + + 310562 SslSocketConnector fails to start if excludeCipherSuites is set + + 310634 Get the localport when opening a server socket. + + 310703 Update test suite to JUnit4 - Module tests/test-integration + + 310918 Synchronize content exchange + + 311154 Use Appendable in preference to StringBuilder/StringBuffer in APIs + + 311362 Optional org.eclipse.jetty.util.log.stderr.SOURCE + + JETTY-1030 Improve jetty.sh script + + JETTY-1142 Replace Set-Cookies with same name + +jetty-7.1.0.RC0 - 27 April 2010 + + 294563 Websocket client connection + + 297104 Improve handling of CONNECT method + + 306349 ProxyServlet does not work unless deployed at / + + 307294 Add AbstractLifeCycle.AbstractLifeCycleListener implementation + + 307847 Fixed combining mime type parameters + + 307898 Handle large/async websocket messages + + 308009 ObjectMBean incorrectly casts getTargetException() to Exception + + 308420 convert jetty-plus.xml to use DeploymentManager + + 308925 Protect the test webapp from remote access + + 309466 Removed synchronization from StdErrLog + + 309765 Added JSP module + + 310051 _configurationClasses now defaults to null in WebAppContext + + 310094 Improved start.jar usage and config files + + 310431 Default ErrorHandler as server Bean + + 310467 Allow SocketConnector to create generic Connection objects + + 310603 Make Logger interface consistent + + 310605 Make a clean room implementation of the JSP logger bridge + + JETTY-903 Stop both caches + + JETTY-1200 SSL NIO Endpoint wraps non NIO buffers + + JETTY-1202 Use platform default algorithm for SecureRandom + + JETTY-1212 handle long content lengths + + JETTY-1214 avoid ISE when scavenging invalid session + + Add AnnotationConfiguration to jetty-plus.xml + + Add NPE protection to ContainerInitializerConfiguration + + Fix jetty-plus.xml reference to addLifeCycle + + Merged 7.0.2.v20100331 + + Temporarily remove jetty-osgi module to clarify jsp version compatibility + +jetty-7.0.2.v20100331 - 31 March 2010 + + 297552 Don't call Continuation timeouts from acceptor tick + + 298236 Additional unit tests for jetty-client + + 306782 httpbis interpretation of 100 continues. Body never skipped + + 306783 NPE in StdErrLog when Throwable is null + + 306840 Suppress content-length in requests with no content + + 306880 Support for UPGRADE in HttpClient + + 306884 Suspend with timeout <=0 never expires + + 307589 updated servlet 3.0 continuations for final API + + Allow Configuration array to be set on Server instance for all web apps + + Ensure webapps with no WEB-INF don't scan WEB-INF/lib + + Take excess logging statements out of startup + +jetty-6.1.24 - 21 April 2010 + + 308925 Protect the test webapp from remote access + + JETTY-903 Stop both caches + + JETTY-1198 reset idle timeout on request body chunks + + JETTY-1200 SSL NIO Endpoint wraps non NIO buffers + + JETTY-1211 SetUID loadlibrary name and debug + + COMETD-100 ClientImpl logs "null" as clientId + + COMETD-107 Reloading the application with reload extension does not fire + /meta/connect handlers until long poll timeout expires + + COMETD-99 ClientImpl logs exceptions in listeners with "debug" level + + Upgraded to cometd 1.1.1 client + +jetty-6.1.23 - 02 April 2010 + + 292800 ContextDeployer - recursive setting is undone by FilenameFilter + + 296569 removeLifeCycleListener() has no effect + + 300178 HttpClients opens too many connections that are immediately closed + + 304658 Inconsistent Expires date format in Set-Cookie headers with maxAge=0 + + 304698 org.eclipse.jetty.http.HttpFields$DateGenerator.formatCookieDate() + uses wrong (?) date format + + 306331 Session manager is kept after call to doScope + + 306840 suppress content-length in requests without content + + JETTY-875 Allow setting of advice field in response to Handshake + + JETTY-983 Range handling cleanup + + JETTY-1133 Handle multiple URL ; parameters + + JETTY-1134 BayeuxClient: Connect msg should be sent as array + + JETTY-1149 transient should be volatile in AbstractLifeCycle + + JETTY-1153 System property for UrlEncoded charset + + JETTY-1155 HttpConnection.close notifies HttpExchange + + JETTY-1156 SSL blocking close with JVM Bug busy key fix + + JETTY-1157 Don't hold array passed in write(byte[]) + + JETTY-1158 NPE in StdErrLog when Throwable is null + + JETTY-1161 An Extension that measures round-trip delay for cometd messages. + + JETTY-1162 Add support for async/sync message delivery to BayeuxClient + + JETTY-1163 AJP13 forces 8859-1 encoding + + JETTY-1168 Don't hold sessionIdManager lock when invalidating sessions + + JETTY-1170 NPE on client when server-side extension returns null + + JETTY-1174 Close rather than finish Gzipstreams to avoid JVM leak + + JETTY-1175 NPE in TimesyncExtension + + JETTY-1176 NPE in StatisticsExtension if client is null + + JETTY-1177 Allow error handler to set cacheControl + + JETTY-1178 Make continuation servlet to log the incoming JSON in case of + parsing errors + + JETTY-1180 Extension methods are wrongly called + + JETTY-1182 COMETD-76 do not lock client while sending messages. + + JETTY-1183 AcknowledgedMessagesClientExtension does not handle correctly + message resend when client long polls again + + JETTY-1186 Better document JMX setup in jetty-jmx.xml + + JETTY-1188 Null old jobs in QueuedThreadPool + + JETTY-1191 Limit size of ChannelId cache + + JETTY-1192 Fixed Digested POST and HttpExchange onRetry + + JETTY-1193 Exception details are lost in AbstractCometdServlet.getMessages + + JETTY-1195 Coalesce buffers in ChannelEndPoint.flush() + + JETTY-1196 Enable TCP_NODELAY by default in client connectors + + JETTY-1197 SetUID module test fails when using Java 1.6 to build + + JETTY-1199 FindBugs cleanups + + JETTY-1202 Use platfrom default algorithm for SecureRandom + + JETTY-1205 Memory leak in browser-to-client mapping + + JETTY-1207 NPE protection in FormAuthenticator + + COMETD-28 Improved concurrency usage in Bayeux and channel handling + + COMETD-46 reset ContentExchange content on resend + + COMETD-58 Extension.rcv() return null causes NPE in + AbstractBayeux.PublishHandler.publish + + COMETD-59 AcknowledgeExtension does not handle null channel in Message + + COMETD-62 Delay add listeners until after client construction + + JSON parses NaN as null + + Remove references to old content in HttpClient client tests for www.sun.com + + Updated JSP to 2.1.v20091210 + +jetty-7.0.2.RC0 + + 290765 Reset input for HttpExchange retry. + + 292799 WebAppDeployer - start a started context? + + 292800 ContextDeployer - recursive setting is undone by FilenameFilter + + 294799 when configuring a webapp, don't look for WEB-INF/jetty6-web.xml + + 296569 removeLifeCycleListener() has no effect + + 296765 JMX Connector Server and ShutdownThread + + 297421 Hide server/system classes from WebAppClassLoader.getResources + + 297783 Handle HEAD reponses in HttpClient + + 298144 Unit test for jetty-client connecting to a server that uses Basic + Auth + + 298145 Reorganized test harness to separate the HTTP PUT and HTTP GET test + URLs + + 298234 Unit test for jetty-client handling different HTTP error codes + + 298667 DeploymentManager uses ContextProvider and WebAppProvider + + 299455 Enum support in JSONPojoConvertor + + 300178 HttpClients opens too many connections that are immediately closed + + 300733 Jars from lib/ext are not visible for my web application + + 300933 AbstractConnector uses concurrent objects for stats + + 301089 Improve statistics available in StatisticsHandler and + AbstractConnector + + 302018 Improve statistics available in AbstractSessionHandler + + 302198 Rename HttpClient authorization classes to Authentication + + 302244 invalid configuration boolean conversion in FormAuthenticator + + 302246 redirect loop using form authenticator + + 302556 CrossOriginFilter does not work correctly when + Access-Control-Request-Headers header is not present + + 302669 WebInfConfiguration.unpack() unpacks WEB-INF/* from a + ResourceCollection, breaking JSP reloading with ResourceCollections + + 303526 Added include cyphers + + 304307 Handle ;jsessionid in FROM Auth + + 304532 Skip some tests on IBM JVMs until resolved + + 304658 Inconsistent Expires date format in Set-Cookie headers with maxAge=0 + + 304698 org.eclipse.jetty.http.HttpFields$DateGenerator.formatCookieDate() + uses wrong (?) date format + + 304781 Reset HttpExchange timeout on slow request content. + + 304801 SSL connections FULL fix + + 305997 Coalesce buffers in ChannelEndPoint.flush() + + 306028 Enable TCP_NODELAY by default in client connectors + + 306330 Flush filter chain cache after Invoker servlet + + 306331 Session manager is kept after call to doScope + + JETTY-776 Make new session-tests module to concentrate all reusable session + clustering test code + + JETTY-910 Allow request listeners to access session + + JETTY-983 Range handling cleanup + + JETTY-1133 Handle multiple URL ; parameters + + JETTY-1151 JETTY-1098 allow UTF-8 with 0 carry bits + + JETTY-1153 System property for UrlEncoded charset + + JETTY-1155 HttpConnection.close notifies HttpExchange + + JETTY-1156 SSL blocking close with JVM Bug busy key fix + + JETTY-1157 Don't hold array passed in write(byte[]) + + JETTY-1163 AJP13 forces 8859-1 encoding + + JETTY-1174 Close rather than finish Gzipstreams to avoid JVM leak + + JETTY-1177 Allow error handler to set cacheControl + + JETTY-1179 Persistant session tables created on MySQL use wrong datatype + + JETTY-1184 shrink thread pool even with frequent small jobs + + JETTY-1192 Fixed Digested POST + + JETTY-1199 FindBugs cleanups + + Added IPAccessHandler + + COMETD-46 reset ContentExchange response content on resend + + JSON parses NaN as null + + Updated Servlet3Continuation to final 3.0.20100224 + +jetty-8.0.0.M0 - 28 February 2010 + + Merged 7.0.1.v20091116 + + Updated servlet 3.0 spec 20100224 + + Updated to cometd 1.0.1 + +jetty-7.0.1.v20091125 - 25 November 2009 + + 274251 DefaultServlet supports exact match mode. + + 288401 HttpExchange.cancel() Method Unimplemented + + 289027 deobfuscate HttpClient SSL passwords + + 289265 Test harness for async input + + 289959 Improved ContextDeployer configuration + + 289960 start.jar assumes command line args are configs + + 291019 Fix default DEBUG option; "-D.DEBUG=true" now works + + 291340 Race condition in onException() notifications + + 291543 make bin/*.sh scripts executable in distribution + + 291589 Update jetty-rewrite demo + + 292546 Proactively enforce HttpClient idle timeout + + 292642 Fix errors in embedded Jetty examples + + 292825 Continuations ISE rather than ignore bad transitions + + 293222 Improved StatisticsHandler for async + + 293506 Unable to use jconsole with Jetty when running with security manager + + 293557 Add "jad" mime mapping + + 294154 Patched jetty-osgi + + 294224 HttpClient timeout setting has no effect when connecting to host + + 294345 Support for HTTP/301 + HTTP/302 response codes + + 294563 Initial websocket implementation + + 295421 Cannot reset() a newly created HttpExchange: IllegalStateException 0 + => 0 + + 295562 CrossOriginFilter does not work with default values in Chrome and + Safari + + JETTY-937 More JVM bug work arounds. Insert pause if all else fails + + JETTY-983 Send content-length with multipart ranges + + JETTY-1114 unsynchronised WebAppClassloader.getResource(String) + + JETTY-1121 Merge Multipart query parameters + + JETTY-1122 Handle multi-byte utf that causes buffer overflow + + JETTY-1125 TransparentProxy incorrectly configured for test webapp + + JETTY-1129 Filter control characters out of StdErrLog + + JETTY-1135 Handle connection closed before accepted during JVM bug work + around + + JETTY-1144 fixed multi-byte character overflow + + JETTY-1148 Reset partially read request reader. + + COMETD-34 Support Baeyux MBean + + CQ-3581 jetty OSGi contribution + + CVE-2009-3555 Prevent SSL renegotiate for SSL vulnerability + + Fixed client abort asocciation + + Fixed XSS issue in CookieDump demo servlet. + + Improved start.jar usage text for properties + + Moved centralized logging and verifier back to sandbox + + Promoted Jetty Centralized Logging from Sandbox + + Promoted Jetty WebApp Verifier from Sandbox + + Refactored continuation test harnessess + +jetty-7.0.0.v20091005 - 05 October 2009 + + 291340 Race condition in onException() notifications + +jetty-6.1.21 - 22 September 2009 + + 282543 HttpClient SSL buffer size fix + + 288055 fix jetty-client for failed listener state machine + + 288153 reset exchange when resending + + 288182 PUT request fails during retry + + JETTY-719 Document state machine of jetty http client + + JETTY-933 State == HEADER in client + + JETTY-936 Improved servlet matching and optimized + + JETTY-1038 ChannelId.isParentOf returns the wrong result + + JETTY-1061 Catch exceptions from cometd listeners + + JETTY-1072 maven plugin handles context path not as documented + + JETTY-1080 modified previous fix for windows + + JETTY-1084 HEAD command not setting content-type in response under certain + circumstances + + JETTY-1090 resolve inifinte loop condition for webdav listener + + JETTY-1092 MultiPartFilter can be pushed into infinite loop + + JETTY-1093 Request.toString throws exception when size exceeds 4k + + JETTY-1098 Default form encoding is UTF8 + + JETTY-1099 Improve cookie handling in BayeuxClient + + JETTY-1100 extend setuid feature to allow setting max open file descriptors + + JETTY-1102 Wrong usage of deliver() in private chat messages + + JETTY-1108 SSL EOF detection + + JETTY-1109 Improper handling of cookies in Terracotta tests + + JETTY-1112 Response fails if header exceeds buffer size + + JETTY-1113 IllegalStateException when adding servlet filters + programmatically + + JETTY-1114 Unsynchronize webapp classloader getResource + + Fix DefaultServletTest for windows + + Include tmp directory sweeper in build + + Streamline jetty-jboss build, update sar to QueuedThreadPool + + Update Jetty implementation of com.sun.net.httpserver.* + +jetty-7.0.0.RC6 - 21 September 2009 + + 280723 Add non blocking statistics handler + + 282543 HttpClient SSL buffer size fix + + 283357 org.eclipse.jetty.server.HttpConnectionTest exceptions + + 288055 jetty-client fails to resolve failed resolution attempts correctly + + 288153 jetty-client resend doesn't reset exchange + + 288182 PUT request fails during retry + + 288466 LocalConnector is not thread safe + + 288514 AbstractConnector does not handle InterruptedExceptions on shutdown + + 288772 Failure to connect does not set status to EXCEPTED + + 289146 formalize reload policy functionality + + 289156 jetty-client: no longer throw runtime exception for bad authn details + + 289221 HttpExchange does not timeout when using blocking connector + + 289285 org.eclipse.jetty.continuation 7.0.0.RC5 imports the + org.mortbay.util.ajax package + + 289686 HttpExchange.setStatus() has too coarse synchronization + + 289958 StatisticsServlet incorrectly adds StatisticsHandler + + 289960 start.jar assumes command line args are configs + + 290081 Eager consume LF after CR + + 290761 HttpExchange isDone handles intercepted events. + + JETTY-719 Document state machine of jetty http client + + JETTY-780 CNFE during startup of webapp with spring-context >= 2.5.1 + + JETTY-936 274251 Improved servlet matching and optimized' + + JETTY-1080 modify previous fix to work on windows + + JETTY-1084 HEAD command not setting content-type in response under certain + circumstances + + JETTY-1086 Use UncheckedPrintWriter & cleaned up HttpStatus.Code usage + + JETTY-1090 resolve potential infinite loop with webdav listener + + JETTY-1092 MultiPartFilter can be pushed into infinite loop + + JETTY-1093 Request.toString throws exception when size exceeds 4k + + JETTY-1098 Default form encoding is UTF8 + + JETTY-1101 Updated servlet3 continuation constructor + + JETTY-1105 Custom error pages aren't working + + JETTY-1108 SSL EOF detection + + JETTY-1112 Response fails if header exceeds buffer size + + JETTY-1113 IllegalStateException when adding servlet filters + programmatically + + Copy VERSION.txt to distro + + Fixed XSS issue in CookieDump demo servlet. + + Remove printlns from jetty-plus + + Tweak DefaultServletTest under windows + +jetty-6.1.20 - 27 August 2009 + + 283513 Check endp.isOpen when blocking read + + 283818 fixed merge of forward parameters + + 285006 Fixed NPE in AbstractConnector during shutdown + + 286535 ContentExchange status code + + 286911 Clean out cache when recycling HTTP fields + + JETTY-838 Don't log and throw + + JETTY-874 Better error on full header. + + JETTY-960 Support ldaps + + JETTY-1046 maven-jetty-jspc-plugin keepSources takes affect only in + packageRoot + + JETTY-1057 XSS error page + + JETTY-1065 Add RedirectRegexRule to provide match/replace/group redirect + support + + JETTY-1066 Send 400 error for request URI parse exceptions + + JETTY-1068 Avoid busy flush of async SSL + + JETTY-1069 Adjust Bayeux Java client backoff algorithm + + JETTY-1070 Java Bayeux Client not sending /meta/disconnect on stop + + JETTY-1074 JMX thread manipulation + + JETTY-1077 HashSSORealm shares Principals between UserRealms + + JETTY-1078 Automatic JSON Pojo Conversion + + JETTY-1079 ResourceCollection.toString() can throw IllegalStateException + + JETTY-1080 Ignore files that would be extracted outside the destination + directory when unpacking WARs + + JETTY-1081 Handle null content type in GzipFilter + + JETTY-1084 Disable GzipFilter for HEAD requests + + JETTY-1085 Allow url sessionID if cookie invalid + + JETTY-1086 Added UncheckedPrintWriter to avoid ignored EOFs + + JETTY-1087 Chunked SSL non blocking input + + JETTY-1098 Upgrade jsp to SJSAS-9_1_1-B60F-07_Jan_2009 + + Added DebugHandler + + Added getSubscriptions to cometd client + + Clarified cometd interval timeout and allow per client intervals + + COMETD-7 max latency config for lazy messages + + Made unSubscribeAll public on cometd client + + Removed clearing of queue in unSubscribeAll for cometd client + + Update Main.main method to call setWar + + Update test-jndi and test-annotation examples for atomikos 3.5.5 + +jetty-7.0.0.RC5 - 27 August 2009 + + 286911 Clean out cache when recycling HTTP fields + + 287496 Use start.ini always and added --exec + + 287632 FilterContinuations for blocking jetty6 + + JETTY-838 Don't log and throw + + JETTY-874 Better header full warnings + + JETTY-960 Support for ldaps + + JETTY-1081 Handle null content type in GzipFilter + + JETTY-1084 Disable GzipFilter for HEAD requests + + JETTY-1085 Allow url sessionID if cookie invalid + + JETTY-1086 Added UncheckedPrintWriter to avoid ignored EOFs + + JETTY-1087 Chunked SSL non blocking input + +jetty-6.1.19 - 01 July 2009 + + JETTY-799 shell script for jetty on cygwin + + JETTY-863 Non blocking stats handler + + JETTY-937 Further Improvements for sun JVM selector bugs + + JETTY-970 BayeuxLoadGenerator latency handling + + JETTY-1011 Grizzly uses queued thread pool + + JETTY-1028 jetty:run plugin should check for the web.xml from the overlays + if not found in src/main/webapp/WEB-INF/ + + JETTY-1029 Handle quoted cookie paths + + JETTY-1031 Handle large pipeline + + JETTY-1033 jetty-plus compiled with jdk1.5 + + JETTY-1034 Cookie parsing + + JETTY-1037 reimplemented channel doRemove + + JETTY-1040 jetty.client.HttpConnection does not handle non IOExceptions + + JETTY-1042 Avoid cookie reuse on shared connection + + JETTY-1044 add commons-daemon support as contrib/start-daemon module + + JETTY-1045 Handle the case where request.PathInfo() should be "/*" + + JETTY-1046 maven-jetty-jspc-plugin keepSources takes affect only in + packageRoot + + JETTY-1047 Cometd client can grow cookie headers + + JETTY-1048 Default servlet can handle partially filtered large static + content + + JETTY-1049 Improved transparent proxy usability + + JETTY-1054 Avoid double deploys + + JETTY-1055 Cookie quoting + + JETTY-1057 Error page stack trace XSS + + JETTY-1058 Handle trailing / with aliases on + + JETTY-1062 Don't filter cometd message without data + +jetty-7.0.0.RC4 - 18 August 2009 + + 279820 Fixed HotSwapHandler + + 285891 SessionAuthentication is serializable + + 286185 Implement ability for JSON implementation to automatically register + convertors + + 286535 ContentExchange status code + + JETTY-1057 XSS error page + + JETTY-1079 ResourceCollection.toString + + JETTY-1080 Ignore files that would be extracted outside the destination + directory when unpacking WARs + + Added discoverable start options + +jetty-7.0.0.RC3 - 07 August 2009 + + 277403 remove system properties + + 282447 concurrent destinations in HttpClient + + 283172 fix Windows build, broken on directory creation with the + DefaultServlet + + 283375 additional error-checking on SSL connector passwords to prevent NPE + + 283513 Check endp.isOpen when blocking read + + 285697 extract parameters if dispatch has query + + JETTY-1074 JMX thread manipulation + + Improved deferred authentication handling + +jetty-7.0.0.RC2 - 29 June 2009 + + 283375 improved extensibility of SSL connectors + + 283818 fixed merge of forward parameters + + 283844 Webapp / TLD errors are not clear + + 284475 update jetty.sh for new OPTIONS syntax + + 284510 Enhance jetty-start for diagnosis and unit testing + + 284981 Implement a cross-origin filter + + 285006 fix AbstractConnector NPE during shutdown. + + Added DebugHandler + + Added JavaUtilLog for Jetty logging to java.util.logging framework + + backport jetty-8 annotation parsing to jetty-7 + + Disassociate method on IdentityService + + Improved handling of overlays and resourceCollections + +jetty-7.0.0.RC1 - 15 June 2009 + + 283344 Startup on windows is broken + + JETTY-1066 283357 400 response for bad URIs + + JETTY-1068 Avoid busy flush of async SSL + +jetty-7.0.0.RC0 - 08 June 2009 + + 271535 Adding integration tests, and enabling RFC2616 tests + + 280843 Buffer pool uses isHeader + + 281287 Handle date headers before 1 Jan 1970 + + 282807 Better handling of 100 continues if response committed. + + JETTY-967 create standalone build for PKCS12Import at codehaus + + JETTY-1056 update jetty-ant module for Jetty 7 at codehaus trunk + + JETTY-1058 Handle trailing / with aliases + +jetty-7.0.0.M4 - 01 June 2009 + + 281059 NPE in QTP with debug on + + JETTY-799 shell script for jetty on cygwin + + JETTY-1031 Handle large pipeline + + JETTY-1034 Cookie parsing + + JETTY-1042 Prevent cookie leak between shared connection + + JETTY-1048 Fix for large partially filtered static content + + JETTY-1049 Improved transparent proxy usability + + JETTY-1054 Avoid double deploys + + JETTY-1055 Cookie quoting + + JETTY-1057 Error page stack trace XSS + +jetty-7.0.0.M3 - 20 June 2009 + + 274251 Allow dispatch to welcome files that are servlets (configurable) + + 276545 Quoted cookie paths + + 277403 Cleanup system property usage. + + 277798 Denial of Service Filter + + 279725 Support 100 and 102 expectations + + 280707 client.HttpConnection does not catch and handle non-IOExceptions + + 281470 Handle the case where request.PathInfo() should be "/*" + + Added ContinuationThrowable + + added WebAppContext.setConfigurationDiscovered for servlet 3.0 features + + fixed race with expired async listeners + + Numerous cleanups from static code analysis + + Portable continuations for jetty6 and servlet3 + + Refactored AbstractBuffers to HttpBuffers for performance + + refactored configuration mechanism + + Refactored continuations to only support response wrapping + +jetty-7.0.0.M2 - 18 May 2009 + + 273767 Update to use geronimo annotations spec 1.1.1 + + 275396 Added ScopedHandler to set servlet scope before security handler + + JETTY-937 Work around Sun JVM bugs + + JETTY-941 Linux chkconfig hint + + JETTY-959 CGI servlet doesn't kill the CGI in case the client disconnects + + JETTY-980 Fixed ResourceHandler ? handling, and bad URI creation in listings + + JETTY-996 Make start-stop-daemon optional + + JETTY-1003 java.lang.IllegalArgumentException: timeout can't be negative + + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment + + JETTY-1013 MySql Error with JDBCUserRealm + + JETTY-1014 Enable start-stop-daemon by default on jetty.sh + (START_STOP_DAEMON=1) + + JETTY-1015 Reduce BayeuxClient and HttpClient lock contention + + JETTY-1020 ZipException in org.mortbay.jetty.webapp.TagLibConfiguration + prevents all contexts from being loaded + +jetty-6.1.18 - 16 May 2009 + + JETTY-937 Improved work around sun JVM selector bugs + + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment + + JETTY-1008 ContinuationBayeux destroy is called + + JETTY-1013 MySql Error with JDBCUserRealm + + JETTY-1014 Enable start-stop-daemon by default on jetty.sh + (START_STOP_DAEMON=1) + + JETTY-1015 Reduce BayeuxClient and HttpClient lock contention + + JETTY-1017 HttpDestination has too coarse locking + + JETTY-1018 Denial of Service Filter + + JETTY-1020 ZipException in org.mortbay.jetty.webapp.TagLibConfiguration + prevents all contexts from being loaded + + JETTY-1022 Removed several 1.5isms + +jetty-5.1.15 - 18 May 2009 + + JETTY-418 synchronized load class + + JETTY-1004 CERT VU402580 Canonical path handling includes ? in path segment + + Fixes for CERT438616-CERT237888-CERT21284 + +jetty-6.1.17 - 30 April 2009 + + JETTY-936 Make optional dispatching to welcome files as servlets + + JETTY-937 Work around sun JVM selector bugs + + JETTY-941 Linux chkconfig hint + + JETTY-957 Reduce hardcoded versions + + JETTY-980 Security / Directory Listing XSS present + + JETTY-982 Make test-jaas-webapp run with jetty:run + + JETTY-983 Default Servlet sets accept-ranges for cached/gzipped content + + JETTY-985 Allow listeners to implement both interfaces + + JETTY-988 X-Forwarded-Host has precedence over X-Forwarded-Server + + JETTY-989 GzipFilter handles addHeader + + JETTY-990 Async HttpClient connect + + JETTY-992 URIUtil.encodePath encodes markup characters + + JETTY-996 Make start-stop-daemon optional + + JETTY-997 Remove jpackage-utils dependency on rpm install + + JETTY-1000 Avoided needless 1.5 dependency + + JETTY-1002 cometd-api to 1.0.beta8 + + JETTY-1003 java.lang.IllegalArgumentException: timeout can't be negative + + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment + + JETTY-1006 Resume meta connect on all XD messages + +jetty-7.0.0.M1 - 22 April 2009 + + 271258 FORM Authentication dispatch handling avoids caching + + 271536 Add support to IO for quietly closing Readers / Writers + + 273011 JETTY-980 JETTY-992 Security / Directory Listing XSS present + + 273101 Fix DefaultServletTest XSS test case + + 273153 Test for Nested references in DispatchServlet + + JETTY-695 Handler dump + + JETTY-983 DefaultServlet generates accept-ranges for cached/gzip content + + Initial support for LoginService.logout + + Removed HTTPConnection specifics from connection dispatching + + Reworked authentication for deferred authentication + + Reworked JMX for new layout + +jetty-6.1.16 - 01 April 2009 + + JETTY-702 Create "jetty-tasks.xml" for the Ant plugin + + JETTY-899 Standardize location for configuration files which go into etc + + JETTY-936 Allow dispatch to welcome files that are servlets + + JETTY-944 Lazy messages don't prevent long polls waiting + + JETTY-946 Redeploys with maven jetty plugin of webapps with overlays don't + work + + JETTY-947 Exception stops terracotta session scavenger + + JETTY-948 ConcurrentModificationException in TerracottaSessionManager + scavenger + + JETTY-949 Move cometd source to cometd.org project + + JETTY-953 SSL keystore file input stream is not being closed directly + + JETTY-956 SslSelectChannelConnector - password should be the default value + of keyPassword if not specified + + JETTY-959 CGI servlet doesn't kill the CGI in case the client disconnects + + JETTY-964 Typo in Jetty 6.1.15 Manifest - Bundle-RequiredExcutionEnvironment + + JETTY-972 Move cometd code back from cometd.org project (temporarily) + + JETTY-973 Deliver same message to a collection of cometd Clients + +jetty-7.0.0.M0 - 27 March 2009 + + JETTY-496 Support inetd/xinetd through use of System.inheritedChannel() + + JETTY-540 Merged 3.0 Public Review changes + + JETTY-567 Delay in initial TLS Handshake With FireFox 3 beta5 and + SslSelectChannelConnector + + JETTY-600 Automated tests of WADI integration + upgrade to WADI 2.0 + + JETTY-691 System.getProperty() calls ... wrap them in doPrivileged + + JETTY-713 Expose additional AbstractConnector methods via MBean + + JETTY-731 Completed DeliverListener for cometd + + JETTY-748 RandomAccessFileBuffer for hadoop optimization + + JETTY-749 Improved ArrayQueue + + JETTY-765 ensure stop mojo works for all execution phases + + JETTY-774 Improved caching of mime types with charsets + + JETTY-775 AbstractSessionTest remove timing related test + + JETTY-778 handle granular windows timer in lifecycle test + + JETTY-779 Fixed line feed in request log + + JETTY-781 Add "mvn jetty:deploy-war" for deploying a pre-assembled war + + JETTY-782 Implement interval advice for BayeuxClient + + JETTY-783 Update jetty self-signed certificate + + JETTY-784 TerracottaSessionManager leaks sessions scavenged in other nodes + + JETTY-786 Allow DataSourceUserRealm to create tables + + JETTY-787 Handle MSIE7 mixed encoding + + JETTY-788 Fix jotm for scoped jndi naming + + JETTY-790 WaitingContinuations can change mutex if not pending + + JETTY-792 TerracottaSessionManager does not unlock new session with + requested id + + JETTY-793 Fixed DataCache millisecond rounding + + JETTY-794 WADI integration tests fail intermittently. + + JETTY-795 NullPointerException in SocketConnector.java + + JETTY-801 Bring back 2 arg EnvEntry constructor + + JETTY-802 Modify the default error pages to make association with Jetty + clearer + + JETTY-804 HttpClient timeout does not always work + + JETTY-805 Fix jetty-jaas.xml for new UserRealm package + + JETTY-806 Timeout related Deadlocks in HTTP Client + + JETTY-807 HttpTester to handle charsets + + JETTY-808 cometd client demo run.sh + + JETTY-809 Need a way to customize WEB-INF/lib file extensions that are added + to the classpath + + JETTY-811 Allow configuration of system properties for the maven plugin + using a file + + JETTY-813 Simplify NCSARequestLog.java + + JETTY-814 Add org.eclipse.jetty.client.Address.toString() + + JETTY-816 Implement reconnect on java bayeux client + + JETTY-817 Aborted SSL connections may cause jetty to hang with full cpu + + JETTY-818 Support javax.servlet.request.ssl_session_id + + JETTY-821 Allow lazy loading of persistent sessions + + JETTY-822 Commit when autocommit=true causes error with mysql + + JETTY-823 Extend start.config profiles + + JETTY-824 Access to inbound byte statistics + + JETTY-825 URL decoding of spaces (+) fails for encoding not utf8 + + JETTY-830 Add ability to reserve connections on http client + + JETTY-831 Add ability to stop java bayeux client + + JETTY-832 More UrlDecoded handling in relation to JETTY-825 + + JETTY-834 Configure DTD does not allow children + + JETTY-837 Response headers set via filter are ignored for static resources + + JETTY-840 add default mime types to *.htc and *.pps + + JETTY-841 Duplicate messages when sending private message to yourself with + cometd chat demo + + JETTY-842 NPE in jetty client when no path component + + JETTY-843 META-INF/MANIFEST.MF is not present in unpacked webapp + + JETTY-844 Replace reflection with direct invocation in Slf4jLog + + JETTY-848 Temporary folder not fully cleanup after stop (via Sweeper) + + JETTY-854 JNDI scope does not work with applications in a .war + + JETTY-859 MultiPartFilter ignores the query string parameters + + JETTY-861 switched buffer pools to ThreadLocal implementation + + JETTY-862 EncodedHttpURI ignores given encoding in constructor + + JETTY-866 jetty-client test case fix + + JETTY-869 NCSARequestLog locale config + + JETTY-870 NullPointerException in Response when performing redirect to wrong + relative URL + + JETTY-871 jetty-client expires() NPE race condition fixed + + JETTY-876 Added new BlockingArrayQueue and new QueuedThreadPool + + JETTY-890 merge jaspi branch to trunk + + JETTY-894 Add android .apk to mime types + + JETTY-897 Remove swing dependency in GzipFilter + + JETTY-898 Allow jetty debs to start with custom java args provided by users + + JETTY-899 Standardize location and build process for configuration files + which go into etc + + JETTY-909 Update useragents cache + + JETTY-917 Change for JETTY-811 breaks systemProperties config parameter in + maven-jetty-plugin + + JETTY-922 Fixed NPE on getRemoteHost when socket closed + + JETTY-923 Client supports attributes + + JETTY-926 default location for generatedClasses of jspc plugin is incorrect + + JETTY-938 Deadlock in the TerracottaSessionManager + + JETTY-939 NPE in AbstractConfiguration.callPreDestroyCallbacks + + JETTY-946 Redeploys with maven jetty plugin of webapps with overlays don't + work + + JETTY-950 Fix double-printing of request URI in request log + + JETTY-953 SSL keystore file input stream is not being closed directly + + JETTY-956 SslSelectChannelConnector - password should be the default value + of keyPassword if not specified + + moved to org.eclipse packages + + simplified HandlerContainer API + +jetty-6.1.15 - 04 March 2009 + + JETTY-923 BayeuxClient uses message pools to reduce memory footprint + + JETTY-924 Improved BayeuxClient disconnect handling + + JETTY-925 Lazy bayeux messages + + JETTY-926 default location for generatedClasses of jspc plugin is incorrect + + JETTY-931 Fix issue with jetty-rewrite.xml + + JETTY-934 fixed stop/start of Bayeux Client + + JETTY-938 Deadlock in the TerracottaSessionManager + + JETTY-939 NPE in AbstractConfiguration.callPreDestroyCallbacks + +jetty-6.1.15 - 02 March 2009 + + JETTY-923 BayeuxClient uses message pools to reduce memory footprint + + JETTY-924 Improved BayeuxClient disconnect handling + + JETTY-925 Lazy bayeux messages + + JETTY-926 default location for generatedClasses of jspc plugin is incorrect + +jetty-6.1.15.rc4 - 19 February 2009 + + JETTY-496 Support inetd/xinetd through use of System.inheritedChannel() + + JETTY-713 Expose additional AbstractConnector methods via MBean + + JETTY-749 Improved ack extension + + JETTY-802 Modify the default error pages to make association with Jetty + clearer + + JETTY-811 Allow configuration of system properties for the maven plugin + using a file + + JETTY-815 Add comet support to jQuery javascript library + + JETTY-840 add default mime types to *.htc and *.pps + + JETTY-848 Temporary folder not fully cleanup after stop (via Sweeper) + + JETTY-869 NCSARequestLog locale config + + JETTY-870 NullPointerException in Response when performing redirect to wrong + relative URL + + JETTY-872 Handshake handler calls wrong extension callback + + JETTY-878 Removed printStackTrace from WaitingContinuation + + JETTY-879 Support extra properties in jQuery comet implementation + + JETTY-882 ChannelBayeuxListener called too many times + + JETTY-884 Use hashcode for threadpool ID + + JETTY-887 Split configuration and handshaking in jquery comet + + JETTY-888 Fix abort in case of multiple outstanding connections + + JETTY-894 Add android .apk to mime types + + JETTY-898 Allow jetty debs to start with custom java args provided by users + + JETTY-909 Update useragents cache + +jetty-6.1.15.rc3 - 28 January 2009 + + JETTY-691 System.getProperty() calls ... wrap them in doPrivileged + + JETTY-844 Replace reflection with direct invocation in Slf4jLog + + JETTY-861 switched buffer pools to ThreadLocal implementation + + JETTY-866 jetty-client test case fix + +jetty-6.1.15.rc2 - 23 January 2009 + + JETTY-567 Delay in initial TLS Handshake With FireFox 3 beta5 and + SslSelectChannelConnector + + adjustment to jetty-client assembly packaging + +jetty-6.1.15.pre0 - 20 January 2009 + + JETTY-600 Automated tests of WADI integration + upgrade to WADI 2.0 + + JETTY-749 Reliable message delivery + + JETTY-781 Add "mvn jetty:deploy-war" for deploying a pre-assembled war + + JETTY-794 WADI integration tests fail intermittently. + + JETTY-795 NullPointerException in SocketConnector.java + + JETTY-798 Jboss session manager incompatible with LifeCycle.Listener + + JETTY-801 Bring back 2 arg EnvEntry constructor + + JETTY-802 Modify the default error pages to make association with Jetty very + clear + + JETTY-804 HttpClient timeout does not always work + + JETTY-806 Timeout related Deadlocks in HTTP Client + + JETTY-807 HttpTester to handle charsets + + JETTY-808 cometd client demo run.sh + + JETTY-809 Need a way to customize WEB-INF/lib file extensions that are added + to the classpath + + JETTY-814 Add org.eclipse.jetty.client.Address.toString() + + JETTY-816 Implement reconnect on java bayeux client + + JETTY-817 Aborted SSL connections may cause jetty to hang with full cpu + + JETTY-819 Jetty Plus no more jre 1.4 + + JETTY-821 Allow lazy loading of persistent sessions + + JETTY-824 Access to inbound byte statistics + + JETTY-825 URL decoding of spaces (+) fails for encoding not utf8 + + JETTY-827 Externalize servlet api + + JETTY-830 Add ability to reserve connections on http client + + JETTY-831 Add ability to stop java bayeux client + + JETTY-832 More UrlDecoded handling in relation to JETTY-825 + + JETTY-833 Update debian and rpm packages for new jsp-2.1-glassfish jars and + servlet-api jar + + JETTY-834 Configure DTD does not allow children + + JETTY-837 Response headers set via filter are ignored for static resources + + JETTY-841 Duplicate messages when sending private message to yourself with + cometd chat demo + + JETTY-842 NPE in jetty client when no path component + + JETTY-843 META-INF/MANIFEST.MF is not present in unpacked webapp + + JETTY-852 Ensure handshake and connect retried on failure for jquery-cometd + + JETTY-854 JNDI scope does not work with applications in a .war + + JETTY-855 jetty-client uber assembly support + + JETTY-858 ContentExchange provides bytes + + JETTY-859 MultiPartFilter ignores the query string parameters + + JETTY-862 EncodedHttpURI ignores given encoding in constructor + +jetty-6.1.14 - 14 November 2008 + + JETTY-630 jetty6-plus rpm is missing the jetty6-plus jar + + JETTY-748 Reduced flushing of large content + + JETTY-765 ensure stop mojo works for all execution phases + + JETTY-777 include util5 on the jetty debs + + JETTY-778 handle granular windows timer in lifecycle test + + JETTY-779 Fixed line feed in request log + + JETTY-782 Implement interval advice for BayeuxClient + + JETTY-783 Update jetty self-signed certificate + + JETTY-784 TerracottaSessionManager leaks sessions scavenged in other nodes + + JETTY-787 Handle MSIE7 mixed encoding + + JETTY-788 Fix jotm for new scoped jndi + + JETTY-790 WaitingContinuations can change mutex if not pending + + JETTY-791 Ensure jdk1.4 compatibility for jetty-6 + + JETTY-792 TerracottaSessionManager does not unlock new session with + requested id + + JETTY-793 Fixed DataCache millisecond rounding + +jetty-6.1.12 - 04 November 2008 + + JETTY-731 Completed DeliverListener for cometd + + JETTY-772 Increased default threadpool size to 250 + + JETTY-774 Cached text/json content type + + JETTY-775 fix port of openspaces to jetty-6 + +jetty-7.0.0.pre5 - 30 October 2008 + + JETTY-766 Fix npe + + JETTY-767 Fixed SSL Client no progress handshake bug + + JETTY-768 Remove EnvEntry overloaded constructors + + JETTY-769 jquery example error + + JETTY-771 Ensure NamingEntryUtil is jdk1.4 compliant + + JETTY-772 Increased default threadpool size to 250 + +jetty-6.1.12.rc5 - 30 October 2008 + + JETTY-703 maxStopTimeMs added to QueuedThreadPool + + JETTY-762 improved QueuedThreadPool idle death handling + + JETTY-763 Fixed AJP13 constructor + + JETTY-766 Ensure SystemProperties set early on jetty-maven-plugin + + JETTY-767 Fixed SSL Client no progress handshake bug + + JETTY-768 Remove EnvEntry overloaded constructors + + JETTY-771 Ensure NamingEntryUtil jdk1.4 compliant + +jetty-7.0.0.pre4 - 28 October 2008 + + JETTY-241 Support for web application overlays in rapid application + development (jetty:run) + + JETTY-319 improved passing of exception when webapp unavailable + + JETTY-331 SecureRandom hangs on systems with low entropy (connectors slow to + start) + + JETTY-591 No server classes for jetty-web.xml + + JETTY-604 AbstractSession.setSessionURL + + JETTY-670 $JETTY_HOME/bin/jetty.sh not worked in Solaris, because of + /usr/bin/which has no error-code + + JETTY-676 ResourceHandler doesn't support HTTP HEAD requests + + JETTY-677 GWT serialization issue + + JETTY-680 Can't configure the ResourceCollection with maven + + JETTY-681 JETTY-692 MultiPartFilter is slow for file uploads + + JETTY-682 Added listeners and queue methods to cometd + + JETTY-686 LifeCycle.Listener + + JETTY-687 Issue with servlet-mapping in dynamic servlet invoker + + JETTY-688 Cookie causes NumberFormatException + + JETTY-689 processing of non-servlet related annotations + + JETTY-690 Updated XBean dependencies to XBean version 3.4.3 and Spring + 2.0.5. + + JETTY-696 jetty.sh restart not working + + JETTY-698 org.eclipse.resource.JarResource.extract does not close + JarInputStream jin + + JETTY-699 Optimized cometd sending of 1 message to many many clients + + JETTY-700 unit test for unread request data + + JETTY-703 maxStopTimeMs added to QueuedThreadPool + + JETTY-708 allow 3 scopes for jndi resources: jvm, server or webapp + + JETTY-709 Jetty plugin's WebAppConfig configured properties gets overridden + by AbstractJettyRunMojo even when already set + + JETTY-710 Worked around poor implementation of File.toURL() + + JETTY-711 DataSourceUserRealm implementation + + JETTY-712 HttpClient does not handle request complete after response + complete + + JETTY-715 AJP Key size as Integer + + JETTY-716 Fixed NPE on empty cometd message + + JETTY-718 during ssl unwrap, return true if some bytes were read, even if + underflow + + JETTY-720 fix HttpExchange.waitForStatus + + JETTY-721 Support wildcard in VirtualHosts configuration + + JETTY-723 jetty.sh does not check if TMP already is set + + JETTY-724 better handle EBCDIC default JVM encoding + + JETTY-728 Improve Terracotta integration and performances + + JETTY-730 Set SAX parse features to defaults + + JETTY-731 DeliverListener for cometd + + JETTY-732 Case Sensitive Basic Authentication Response Header + Implementations + + JETTY-733 Expose ssl connectors with xbean + + JETTY-735 Wrong default jndi name on DataSourceUserRealm + + JETTY-736 Client Specific cometd advice + + JETTY-737 refactored jetty.jar into jetty, xml, security, ssl, webapp and + deploy jars + + JETTY-738 If jetty.sh finds a pid file is does not check to see if a process + with that pid is still running + + JETTY-739 Race in QueuedThreadPool + + JETTY-741 HttpClient connects slowly due to reverse address lookup by + InetAddress.getHostName() + + JETTY-742 Private messages in cometd chat demo + + JETTY-747 Handle HttpClient exceptions better + + JETTY-755 Optimized HttpParser and buffers for few busy connections + + JETTY-757 Unhide JAAS classes + + JETTY-758 Update JSP to glassfish tag SJSAS-9_1_1-B51-18_Sept_2008 + + JETTY-759 Fixed JSON small negative real numbers + + JETTY-760 Handle wildcard VirtualHost and normalize hostname in + ContextHandlerCollection + + JETTY-762 improved QueuedThreadPool idle death handling + + JETTY-763 Fixed AJP13 constructor + + JETTY-766 Ensure SystemProperties set early on jetty-maven-plugin + +jetty-6.1.12.rc4 - 21 October 2008 + + JETTY-319 improved passing of exception when webapp unavailable + + JETTY-729 Backport Terracotta integration to Jetty6.1 branch + + JETTY-744 Backport of JETTY-741: HttpClient connects slowly due to reverse + address lookup by InetAddress.getHostName() + + JETTY-747 Handle exceptions better in HttpClient + + JETTY-755 Optimized HttpParser and buffers for few busy connections + + JETTY-758 Update JSP 2.1 to glassfish tag SJSAS-9_1_1-B51-18_Sept_2008 + + JETTY-759 Fixed JSON small negative real numbers + + JETTY-760 Handle wildcard VirtualHost and normalize hostname in + ContextHandlerCollection + +jetty-6.1.12.rc3 - 10 October 2008 + + JETTY-241 Support for web application overlays in rapid application + development (jetty:run) + + JETTY-686 LifeCycle.Listener + + JETTY-715 AJP key size + + JETTY-716 NPE for empty cometd message + + JETTY-718 during ssl unwrap, return true if some bytes were read, even if + underflow + + JETTY-720 fix HttpExchange.waitForStatus + + JETTY-721 Support wildcard in VirtualHosts configuration + + JETTY-722 jndi related threadlocal not cleared after deploying webapp + + JETTY-723 jetty.sh does not check if TMP already is set + + JETTY-725 port JETTY-708 (jndi scoping) to jetty-6 + + JETTY-730 set SAX parser features to defaults + + JETTY-731 DeliverListener for cometd + + JETTY-732 Case Sensitive Basic Authentication Response Header + Implementations + + JETTY-736 Client Specific cometd advice + + JETTY-738 If jetty.sh finds a pid file is does not check to see if a process + with that pid is still running + + JETTY-739 Race in QueuedThreadPool + + JETTY-742 Private messages in cometd chat demo + +jetty-6.1.12rc2 - 12 September 2008 + + JETTY-282 Support manually-triggered reloading + + JETTY-331 SecureRandom hangs on systems with low entropy (connectors slow to + startup) + + JETTY-591 No server classes for jetty-web.xml + + JETTY-670 $JETTY_HOME/bin/jetty.sh not worked in Solaris, because of + /usr/bin/which has no error-code + + JETTY-671 Configure DTD does not allow children + + JETTY-672 Utf8StringBuffer doesn't properly handle null characters (char + with byte value 0) + + JETTY-676 ResourceHandler doesn't support HTTP HEAD requests + + JETTY-677 GWT serialization issue + + JETTY-680 Can't configure the ResourceCollection with maven + + JETTY-681 JETTY-692 MultiPartFilter is slow for file uploads + + JETTY-682 Added listeners and queue methods to cometd + + JETTY-683 ResourceCollection works for jsp files but does not work for + static resources under DefaultServlet + + JETTY-687 Issue with servlet-mapping in dynamic servlet invoker + + JETTY-688 Cookie causes NumberFormatException + + JETTY-696 ./jetty.sh restart not working + + JETTY-698 org.eclipse.resource.JarResource.extract does not close + JarInputStream jin + + JETTY-699 Optimize cometd sending of 1 message to many many clients + + JETTY-709 Jetty plugin's WebAppConfig configured properties gets overridden + by AbstractJettyRunMojo even when already set + + JETTY-710 Worked around poor implementation of File.toURL() + + JETTY-712 HttpClient does not handle request complete after response + complete + +jetty-7.0.0pre3 - 06 August 2008 + + JETTY-30 Externalize servlet-api to own project + + JETTY-182 Support setting explicit system classpath for jasper + Jsr199JavaCompiler + + JETTY-319 Get unavailable exception and added startWithUnavailable option + + JETTY-381 JETTY-622 Multiple Web Application Source Directory + + JETTY-442 Accessors for mimeType on ResourceHandler + + JETTY-502 forward of an include should hide include attributes + + JETTY-562 RewriteHandler support for virtual hosts + + JETTY-563 JETTY-482 OpenRemoteServiceServlet for GWT1.5M2+ + + JETTY-564 Consider optionally importing org.apache.jasper.servlet + + JETTY-571 SelectChannelConnector throws Exception on close on Windows + + JETTY-608 Suspend/Resume/Complete request listeners + + JETTY-621 Improved LazyList javadoc + + JETTY-626 Null protect reading the dtd resource from classloader + + JETTY-628 Rewrite rule for rewriting scheme + + JETTY-629 Don't hold timeout lock during expiry call. + + JETTY-632 OSGi tags for Jetty client + + JETTY-633 Default form encoding 8859_1 rather than utf-8 + + JETTY-635 Correctly merge request parameters when doing forward + + JETTY-636 Separate lifeycle of jsp build + + JETTY-637 empty date headers throw IllegalArgumentException + + JETTY-641 JDBC Realm purge cache problem + + JETTY-642 NPE in LdapLoginModule + + JETTY-644 LdapLoginModule uses proper filters when searching + + JETTY-645 Do not provide jetty-util to the webapps + + JETTY-646 Should set Cache-Control header when sending errors to avoid + caching + + JETTY-647 suspended POSTs with binary data do too many resumes + + JETTY-650 Parse "*" URI for HTTP OPTIONS request + + JETTY-651 Release resources during destroy + + JETTY-653 Upgrade jta api specs to more recent version + + JETTY-654 Allow Cometd Bayeux object to be JMX manageable + + JETTY-655 Support parsing application/x-www-form-urlencoded parameters via + http PUT + + JETTY-656 HttpClient defaults to async mode + + JETTY-659 ContentExchange and missing headers in HttpClient + + JETTY-663 AbstractDatabaseLoginModule handle not found UserInfo and userName + + JETTY-665 Support merging class directories + + JETTY-666 scanTargetPatterns override the values already being set by + scanTarget + + JETTY-667 HttpClient handles chunked content + + JETTY-669 Http methods other than GET and POST should not have error page + content + + JETTY-671 Configure DTD does not allow children + + JETTY-672 Utf8StringBuffer doesn't properly handle null characters (char + with byte value 0) + + JETTY-675 ServletContext.getRealPath("") returns null instead of returning + the root dir of the webapp + + Upgrade jsp 2.1 to SJSAS-9_1_02-B04-11_Apr_2008 + +jetty-6.1.12rc1 - 01 August 2008 + + JETTY-319 Get unavailable exception and added startWithUnavailable option + + JETTY-381 JETTY-622 Multiple Web Application Source Directory + + JETTY-442 Accessors for mimeType on ResourceHandler + + JETTY-502 forward of an include should hide include attributes + + JETTY-562 RewriteHandler support for virtual hosts + + JETTY-563 GWT OpenRemoteServiceServlet GWT1.5M2+ + + JETTY-564 Consider optionally importing org.apache.jasper.servlet + + JETTY-571 SelectChannelConnector throws Exception on close on Windows + + JETTY-596 Proxy authorization support in HttpClient + + JETTY-599 handle buffers consistently handle invalid index for poke + + JETTY-603 Handle IPv6 in HttpURI + + JETTY-605 Added optional threadpool to BayeuxService + + JETTY-606 better writeTo impl for BIO + + JETTY-607 Add GigaSpaces session clustering + + JETTY-610 jetty.class.path not being interpreted + + JETTY-613 website module now generates site-component for jetty-site + + JETTY-614 scanner allocated hashmap on every scan + + JETTY-623 ServletContext.getServerInfo() non compliant + + JETTY-626 Null protect reading the dtd resource from classloader + + JETTY-628 Rewrite rule for rewriting scheme + + JETTY-629 Don't hold timeout lock during expiry call. + + JETTY-632 OSGi tags for Jetty client + + JETTY-633 Default form encoding 8859_1 rather than utf-8 + + JETTY-635 Correctly merge request parameters when doing forward + + JETTY-637 empty date headers throw IllegalArgumentException + + JETTY-641 JDBC Realm purge cache problem + + JETTY-642 NPE in LdapLoginModule + + JETTY-644 LdapLoginModule uses proper filters when searching + + JETTY-646 Should set Cache-Control header when sending errors to avoid + caching + + JETTY-647 suspended POSTs with binary data do too many resumes + + JETTY-650 Parse "*" URI for HTTP OPTIONS request + + JETTY-651 Release resources during destroy + + JETTY-654 Allow Cometd Bayeux object to be JMX manageable + + JETTY-655 Support parsing application/x-www-form-urlencoded parameters via + http PUT + + JETTY-656 HttpClient defaults to async mode + + JETTY-657 Backport jetty-7 sslengine + + JETTY-658 backport latest HttpClient from jetty-7 to jetty-6 + + JETTY-659 ContentExchange and missing headers in HttpClient + + JETTY-660 Backported QoSFilter + + JETTY-663 AbstractDatabaseLoginModule handle not found UserInfo and userName + + JETTY-665 Support merging class directories + + JETTY-666 scanTargetPatterns override the values already being set by + scanTarget + + JETTY-667 HttpClient handles chunked content + + JETTY-669 Http methods other than GET and POST should not have error page + content + + Upgrade jsp 2.1 to SJSAS-9_1_02-B04-11_Apr_2008 + +jetty-7.0.0pre2 - 30 June 2008 + + JETTY-336 413 error for header buffer full + + JETTY-425 race in stopping SelectManager + + JETTY-568 Avoid freeing DirectBuffers. New locking NIO ResourceCache. + + JETTY-569 Stats for suspending requests + + JETTY-572 Unique cometd client ID + + JETTY-576 servlet dtds and xsds not being loaded locally + + JETTY-578 OSGI Bundle-RequiredExcutionEnvironment set to J2SE-1.5 + + JETTY-579 OSGI resolved management and servlet.resources import error + + JETTY-580 Fixed SSL shutdown + + JETTY-581 ContextPath constructor + + JETTY-582 final ISO_8859_1 + + JETTY-584 handle null contextPath + + JETTY-587 persist sessions to database + + JETTY-588 handle Retry in ServletException + + JETTY-589 Added Statistics Servlet + + JETTY-590 Digest auth domain for root context + + JETTY-592 expired timeout callback without synchronization + + JETTY-595 SessionHandler only deals with base request session + + JETTY-596 proxy support in HttpClient + + JETTY-598 Added more reliable cometd message flush option + + JETTY-599 handle buffers consistently handle invalid index for poke + + JETTY-603 Handle IPv6 in HttpURI + + JETTY-605 Added optional threadpool to BayeuxService + + JETTY-606 better writeTo impl for BIO + + JETTY-607 Add GigaSpaces session clustering + + JETTY-609 jetty-client improvements for http conversations + + JETTY-610 jetty.class.path not being interpreted + + JETTY-611 make general purpose jar scanning mechanism + + JETTY-612 scan for web.xml fragments + + JETTY-613 various distribution related changes + + JETTY-614 scanner allocates hashmap on every iteration + + JETTY-615 Replaced CDDL servlet.jar with Apache-2.0 licensed version + + JETTY-623 ServletContext.getServerInfo() non compliant + +jetty-6.1.11 - 06 June 2008 + + JETTY-336 413 error for full header buffer + + JETTY-425 race in stopping SelectManager + + JETTY-580 Fixed SSL shutdown + + JETTY-581 ContextPath constructor + + JETTY-582 final ISO_8859_1 + + JETTY-584 handle null contextPath + + JETTY-588 handle Retry in ServletException + + JETTY-590 Digest auth domain for root context + + JETTY-592 expired timeout callback without synchronization + + JETTY-595 SessionHandler only deals with base request session + + JETTY-596 Proxy support in HttpClient + + JETTY-598 Added more reliable cometd message flush option + +jetty-6.1.10 - 20 May 2008 + + JETTY-440 allow file name patterns for jsp compilation for jspc plugin + + JETTY-529 CNFE when deserializing Array from session resolved + + JETTY-537 JSON handles Locales + + JETTY-547 Shutdown SocketEndpoint output before close + + JETTY-550 Reading 0 bytes corrupts ServletInputStream + + JETTY-551 Upgraded to Wadi 2.0-M10 + + JETTY-556 Encode all URI fragments + + JETTY-557 Allow ServletContext.setAttribute before start + + JETTY-558 optional handling of X-Forwarded-For/Host/Server + + JETTY-566 allow for non-blocking behavior in jetty maven plugin + + JETTY-572 unique cometd client ID + + JETTY-579 osgi fixes with management and servlet resources + + Use QueuedThreadPool as default + +jetty-7.0.0pre1 - 03 May 2008 + + JETTY-440 allow file name patterns for jsp compilation for jspc plugin + + JETTY-529 CNFE when deserializing Array from session resolved + + JETTY-558 optional handling of X-Forwarded-For/Host/Server + + JETTY-559 ignore unsupported shutdownOutput + + JETTY-566 allow for non-blocking behavior in jetty maven plugin + + address osgi bundling issue relating to build resources + + Allow annotations example to be built regularly, copy to contexts-available + + Improved suspend examples + + Make annotations example consistent with servlet 3.0 + + Refactor JNDI impl to simplify + +jetty-7.0.0pre0 - 21 April 2008 + + JETTY-282 Support manually-triggered reloading by maven plugin + + JETTY-341 100-Continues sent only after getInputStream called. + + JETTY-386 backout fix and replaced with + ContextHandler.setCompactPath(boolean) + + JETTY-399 update OpenRemoteServiceServlet to gwt 1.4 + + JETTY-467 allow URL rewriting to be disabled. + + JETTY-468 unique holder names for addServletWithMapping + + JETTY-471 LDAP JAAS Realm + + JETTY-474 Fixed case sensitivity issue with HttpFields + + JETTY-475 AJP connector in RPMs + + JETTY-486 Improved jetty.sh script + + JETTY-487 Handle empty chunked request + + JETTY-494 Client side session replication + + JETTY-519 HttpClient does not recycle closed connection. + + JETTY-522 Add build profile for macos for setuid + + JETTY-523 Default servlet uses ServletContext.getResource + + JETTY-524 Don't synchronize session event listener calls + + JETTY-525 Fixed decoding for long strings + + JETTY-526 Fixed MMBean fields on JMX MBeans + + JETTY-528 Factor our cookie parsing to CookieCutter + + JETTY-530 Improved JMX MBeanContainer lifecycle + + JETTY-531 Optional expires on MovedContextHandler + + JETTY-532 MBean properties for QueuedThreadPool + + JETTY-535 Fixed Bayeux server side client memory leak + + JETTY-537 JSON handles Locales + + JETTY-538 test harness fix for windows + + JETTY-540 Servlet-3.0 & java5 support (work in progress) + + JETTY-543 Atomic batch get and put of files. + + JETTY-545 Rewrite handler + + JETTY-546 Webapp runner. All in one jar to run a webapps + + JETTY-547 Shutdown SocketEndpoint output before close + + JETTY-550 Reading 0 bytes corrupts ServletInputStream + + JETTY-551 Wadi 2.0-M10 + + JETTY-553 Fixed customize override + + JETTY-556 Encode all URI fragments + + JETTY-557 Allow ServletContext.setAttribute before start + + JETTY-560 Allow decoupling of jndi names in web.xml + + Added option to dispatch to suspended requests. + + BayeuxClient use a single connection for polling + + Delay 100 continues until getInputStream + + Ensure Jotm tx mgr can be found in jetty-env.xml + + HttpClient supports pipelined request + + Jetty-6.1.8 Changes + + Make javax.servlet.jsp optional osgi import for jetty module + + QueuedThreadPool default + + Refactor of Continuation towards servlet 3.0 proposal + + Renamed modules management and naming to jmx and jndi. + + RetryRequest exception now extends ThreadDeath + +jetty-6.1.9 - 26 March 2008 + + JETTY-399 update OpenRemoteServiceServlet to gwt 1.4 + + JETTY-471 LDAP JAAS Realm + + JETTY-475 AJP connector in RPMs + + JETTY-482 update to JETTY-399 + + JETTY-519 HttpClient does not recycle closed connection. + + JETTY-522 Add build profile for macos for setuid + + JETTY-525 Fixed decoding for long strings + + JETTY-526 Fixed MMBean fields on JMX MBeans + + JETTY-532 MBean properties for QueuedThreadPool + + JETTY-535 Fixed Bayeux server side client memory leak + + JETTY-538 test harness fix for windows + + JETTY-541 Cometd per client timeouts + + Ensure Jotm tx mgr can be found in jetty-env.xml + + Make javax.servlet.jsp optional osgi import for jetty module + +jetty-6.1.8 - 28 February 2008 + + JETTY-350 log ssl errors on SslSocketConnector + + JETTY-417 JETTY_LOGS environment variable not queried by jetty.sh + + JETTY-433 ContextDeployer constructor fails unnecessarily when using a + security manager if jetty.home not set + + JETTY-434 ContextDeployer scanning of sub-directories should be optional + + JETTY-481 Handle empty Bayeux response + + JETTY-489 Improve doco on the jetty.port property for plugin + + JETTY-490 Fixed JSONEnumConvertor + + JETTY-491 opendocument mime types + + JETTY-492 Null pointer in HashSSORealm + + JETTY-493 JSON handles BigDecimals + + JETTY-498 Improved cookie parsing + + JETTY-507 Fixed encoding from JETTY-388 and test case + + JETTY-508 Extensible cometd handlers + + JETTY-509 Fixed JSONP transport for changing callback names + + JETTY-511 jetty.sh mishandled JETTY_HOME when launched from a relative path + + JETTY-512 add slf4j as optional to manifest + + JETTY-513 Terracotta session replication does not work when the initial page + on each server does not set any attributes + + JETTY-515 Timer is missing scavenging Task in HashSessionManager + + Add "mvn jetty:stop" + + Added BayeuxService + + Added JSON.Convertor and non static JSON instances + + Added QueuedThreadPool + + add removeHandler(Handler) method to HandlerContainer interface + + AJP handles bad mod_jk methods + + Allow code ranges on ErrorPageErrorHandler + + allow sessions to be periodically persisted to disk + + Cookie support in BayeuxClient + + Fixed JSON negative numbers + + further Optimizations and improvements of Cometd + + grizzly fixed for posts + + Improved Bayeux API + + Improved Cometd timeout handling + + JSON unquotes / + + Long cache for JSON + + Optimizations and improvements of Cometd, more pooled objects + + Optimized QuotedStringTokenizer.quote() + + Remove duplicate commons-logging jars and include sslengine in jboss sar + +jetty-6.1.7 - 22 December 2007 + + JETTY-386 CERT-553235 backout fix and replaced with + ContextHandler.setCompactPath(boolean) + + JETTY-467 allow URL rewriting to be disabled. + + JETTY-468 unique holder names for addServletWithMapping + + JETTY-474 Fixed case sensitivity issue with HttpFields + + JETTY-486 Improved jetty.sh script + + JETTY-487 Handle empty chunked request + + Add "mvn jetty:stop" + + Added BayeuxService + + Added JSON.Convertor and non static JSON instances + + allow sessions to be periodically persisted to disk + + Cookie support in BayeuxClient + + grizzly fixed for posts + + jetty-6.1 branch created from 6.1.6 and r593 of jetty-contrib trunk + + Optimizations and improvements of Cometd, more pooled objects + + Update java5 patch + +jetty-6.1.6 - 18 November 2007 + + JETTY-455 Optional cometd id + + JETTY-459 Unable to deploy from Eclipse into the root context + + JETTY-461 fixed cometd unknown channel + + JETTY-464 typo in ErrorHandler + + JETTY-465 System.exit() in constructor exception for MultiPartOutputStream + + rudimentary debian packaging + + updated grizzly connector to 1.6.1 + +jetty-6.1.6rc1 - 05 November 2007 + + JETTY-388 Handle utf-16 and other multibyte non-utf-8 form content. + + JETTY-409 String params that denote files changed to File + + JETTY-438 handle trailing . in vhosts + + JETTY-439 Fixed 100 continues clash with Connection:close + + JETTY-443 windows bug causes Acceptor thread to die + + JETTY-445 removed test code + + JETTY-448 added setReuseAddress on AbstractConnector + + JETTY-450 Bad request for response sent to server + + JETTY-451 Concurrent modification of session during invalidate + + JETTY-452 CERT VU#237888 Dump Servlet - prevent cross site scripting + + JETTY-453 updated Wadi to 2.0-M7 + + JETTY-454 handle exceptions with themselves as root cause + + JETTY-456 allow null keystore for osX + + JETTY-457 AJP certificate chains + + Added configuration file for capturing stderr and stdout + + CERT VU#38616 handle single quotes in cookie names. + + Give bayeux timer name + + Give Terracotta session scavenger a name + + Housekeeping on poms + + Improved JSON parsing from Readers + + Jetty Eclipse Plugin 1.0.1: force copy of context file on redeploy + + Moved some impl classes from jsp-api-2.1 to jsp-2.1 + + Updated for dojo 1.0(rc) cometd + + Upgrade jsp 2.1 to SJSAS-9_1-B58G-FCS-08_Sept_2007 + +jetty-6.1.6rc0 - 03 October 2007 + + JETTY-259 SystemRoot set for windows CGI + + JETTY-311 avoid json keywords + + JETTY-376 allow anything but CRLF in reason string + + JETTY-398 Allow same WADI Dispatcher to be used across multiple web-app + contexts + + JETTY-400 consume CGI stderr + + JETTY-402 keep HashUserRealm in sync with file + + JETTY-403 Allow long content length for range requests + + JETTY-404 WebAppDeployer sometimes deploys duplicate webapp + + JETTY-405 Default date formate for reqest log + + JETTY-407 AJP handles unknown content length + + JETTY-413 Make rolloveroutputstream timer daemon + + JETTY-422 Allow values to be null in config files + + JETTY-423 Ensure javax.servlet.forward parameters are latched on first + forward + + JETTY-425 Handle duplicate stop calls better + + JETTY-430 improved cometd logging + + JETTY-431 HttpClient soTimeout + + Add ability to persist sessions with HashSessionManager + + Added ConcatServlet to combine javascript and css + + Added jetty.lib system property to start.config + + Added JPackage RPM support + + Added JSON.Convertable + + Adding setUsername,setGroupname to setuid and mavenizing native build + + Add jetty.host system property + + AJP13 Fix on chunked post + + Allow properties files on the XmlConfiguration command line. + + Allow scan interval to be set after Scanner started + + Avoid FULL exception in window between blockForOutput and remote close + + Cached user agents strings in the /org/mortbay/jetty/useragents resource + + CVE-2007-5615 Added protection for response splitting with bad headers. + + Ensure session is completed only when leaving context. + + Fix cached header optimization for extra characters + + Fix Host header for async client + + Fix patch for java5 to include cometd module + + Fix typo in async client onResponsetHeader method name + + Give deployment file Scanner threads a unique name + + Make default time format for RequestLog match NCSA default + + Make mx4j used only if runtime uses jdk<1.5 + + Moved Grizzly to contrib + + Prevent infinite loop on stopping with temp dir + + Removal of unneeded dependencies from management, maven-plugin, naming & + plus poms + + SetUID option to support setgid + + Tweak OSGi manifests to remove unneeded imports + + Updated README, test index.html file and jetty-plus.xml file + + Update jasper2.1 to tag SJSAS-9_1-B58C-FCS-22_Aug_2007 + + Update terracotta to 2.4.1 and exclude ssl classes + + Use terracotta repo for build; make jetty a terracotta module + + UTF-8 for bayeux client + +jetty-6.1.5 - 19 July 2007 + + JETTY-392 updated LikeJettyXml example + + Fixed GzipFilter for dispatchers + + Fixed reset of reason + + Upgrade to Jasper 2.1 tag SJSAS-9_1-B50G-BETA3-27_June_2007 + +jetty-6.1.5rc0 - 15 July 0200 + + JETTY-253 Improved graceful shutdown + + JETTY-373 Stop all dependent lifecycles + + JETTY-374 HttpTesters handles large requests/responses + + JETTY-375 IllegalStateException when committed. + + JETTY-376 allow spaces in reason string + + JETTY-377 allow sessions to be wrapped with + AbstractSesssionManager.SessionIf + + JETTY-378 handle JVMs with non ISO/UTF default encodings + + JETTY-380 handle pipelines of more than 4 requests! + + JETTY-385 EncodeURL for new sessions from dispatch + + JETTY-386 Allow // in file resources + + Added GzipFilter and UserAgentFilter + + Dispatch SslEngine expiry (non atomic) + + Improved Request log configuration options + + make jetty plus example webapps use ContextDeployer + + make OSGi manifests for jetty jars + + Make SLF4JLog impl public, add mbean descriptors + + Protect SslSelectChannelConnector from exceptions during close + + remove call to open connectors in jetty.xml + + SetUID option to only open connectors before setUID. + + SPR-3682 - dont hide forward attr in include. + + update links on website + + update terracotta configs for tc 2.4 stable1 + + update terracotta session clustering to terracotta 2.4 + + Upgrade to Jasper 2.1 tag SJSAS-9_1-B50G-BETA3-27_June_2007 + +jetty-6.1.4 - 15 June 2007 + + JETTY-370 ensure idleTimeout<=0 means connections never expire + + JETTY-371 Fixed chunked HEAD response + + JETTY-372 make test for cookie caching more rigorous + + fixed early open() call in NIO connectors + +jetty-6.1.4rc1 - 10 June 2007 + + JETTY-310 better exception when no filter file for cometd servlet + + JETTY-323 handle htaccess without a user realm + + JETTY-346 add wildcard support to extra scan targets for maven plugin + + JETTY-355 extensible SslSelectChannelConnector + + JETTY-357 cleaned up ssl buffering + + JETTY-360 allow connectors, userRealms to be added from a for + maven plugin + + JETTY-361 prevent url encoding of dir listings for non-link text + + JETTY-362 More object locks + + JETTY-365 make needClientAuth work on SslSelectChannelConnector + + JETTY-366 JETTY-368 Improved bayeux disconnect + + async client improvements + + fixed handling of large streamed files + + Fixed synchronization conflict SslSelectChannel and SelectChannel + + moved documentation for jetty and jspc maven plugins to wiki + + Optional static content cache + + Work around IBM JVM socket close issue + +jetty-6.1.4rc0 - 01 June 2007 + + JETTY-257 fixed comet cross domain + + JETTY-309 fix applied to sslEngine + + JETTY-317 rollback inclusion of cometd jar for maven plugin + + JETTY-318 Prevent meta channels being created + + JETTY-330 Allow dependencies with scope provided for jspc plugin + + JETTY-335 SslEngine overflow fix + + JETTY-337 deprecated get/setCipherSuites and added + get/setExcludeCipherSuites + + JETTY-338 protect isMoreInBuffer from destroy + + JETTY-339 MultiPartFiler deletes temp files on IOException + + JETTY-340 FormAuthentication works with null response + + JETTY-344 gready fill in ByteArrayBuffer.readFrom + + JETTY-345 fixed lost content with blocked NIO. + + JETTY-347 Fixed type util init + + JETTY-352 Object locks + + Add (commented out) jspc precompile to test-webapp + + Add ability to run cometd webapps to maven plugin + + Add slf4j-api for upgraded version + + Allow XmlConfiguration properties to be configured + + Change scope of fields for Session + + Delay ssl handshake until after dispatch in sslSocketConnector + + fixed JSP close handling + + fixed waiting continuation reset + + improved date header handling + + Optional send Date header. Server.setSendDateHeader(boolean) + + Reorganized import of contrib modules + + Set so_timeout during ssl handshake as an option on SslSocketConnector + + Unified JMX configuration + + Updated junit to 3.8.2 + + Updated slf4j version to 1.3.1 + + update etc/jetty-ssl.xml with new handshake timeout setting + +jetty-6.1.3 - 04 May 2007 + + JETTY-309 don't clear writable status until dispatch + + JETTY-315 suppressed warning + + JETTY-322 AJP13 cping and keep alive + + Handle CRLF for content in header optimization + +jetty-6.1.2 - 01 May 2007 + + JETTY-322 fix ajp cpong response and close handling + + JETTY-324 fix ant plugin + + JETTY-328 updated jboss + + Added static member definition in WadiSessionManager + + Fixed session invalidation error in WadiSessionManager + + Improved unavailabile handling + + sendError resets output state + + Updated Wadi to version 2.0-M3 + +jetty-6.1.2rc5 - 24 April 2007 + + JETTY-305 delayed connection destroy + + JETTY-309 handle close in multivalue connection fields. + + JETTY-314 fix for possible NPE in Request.isRequestedSessionIdValid + + Allow jsp-file to be / or /* + + removed some compile warnings + + set default keystore for SslSocketConnector + +jetty-6.1.2rc4 - 19 April 2007 + + JETTY-294 Fixed authentication reset + + JETTY-299 handle win32 paths for object naming + + JETTY-300 removed synchronized on dispatch + + JETTY-302 correctly parse quoted content encodings + + JETTY-303 fixed dual reset of generator + + JETTY-304 Fixed authentication reset + +jetty-6.1.2rc3 - 16 April 2007 + + JETTY-283 Parse 206 and 304 responses in client + + JETTY-285 enable jndi for mvn jetty:run-war and jetty:run-exploded + + JETTY-289 fixed javax.net.ssl.SSLException on binary file upload + + JETTY-292 Fixed error page handler error pages + + JETTY-293 fixed NPE on fast init + + JETTY-294 Response.reset() resets headers as well as content + + JETTY-295 Optional support of authenticated welcome files + + JETTY-296 Close direct content inputstreams + + JETTY-297 Recreate tmp dir on stop/start + + JETTY-298 Names in JMX ObjectNames for context, servlets and filters + + AJP redirects https requests correctly + + Fixed writes of unencoded char arrays. + + Improved performance and exclusions for TLD scanning + + Improvements to allow simple setting of Cache-Control headers + + MBean properties assume writeable unless marked RO + + refactor of SessionManager and SessionIdManager for clustering + +jetty-6.1.2rc2 - 27 March 2007 + + JETTY-125 maven plugin: ensure test dependencies on classpath for + + + JETTY-246 path encode cookies rather than quote + + JETTY-254 prevent close of jar entry by bad JVMs + + JETTY-256 fixed isResumed and work around JVM bug + + JETTY-258 duplicate log message in ServletHandler + + JETTY-260 Close connector before stop + + JETTY-262 Allow acceptor thread priority to be adjusted + + JETTY-263 Added implementation for authorizationType Packets + + JETTY-265 Only quote cookie values if needed + + JETTY-266 Fix deadlock with shutdown + + JETTY-271 ResourceHandler uses resource for MimeType mapping + + JETTY-272 Activate and Passivate events for sessions + + JETTY-274 Improve flushing at end of request for blocking + + JETTY-276 Partial fix for reset/close race + + JETTY-277 Improved ContextHandlerCollection + + JETTY-278 Session invalidation delay until no requests + + JETTY-280 Fixed deadlock with two flushing threads + + JETTY-284 Fixed stop connector race + + JETTY-286 isIntegral and isConfidential methods overridden in + SslSelectChannelConnector + + Added RestFilter for PUT and DELETE from Aleksi Kallio + + AJP13 CPING request and CPONG response implemented + + AJP13 remoteUser, contextPath, servletPath requests implemented + + AJP13 Shutdown Request from peer implemented + + Change some JNDI logging to debug level instead of info + + Enable the SharedStoreContextualiser for the WadiSessionManager(Database + store for clustering) + + Make annotations work for maven plugin + + Optimized multi threaded init on startup servlets + + Refactor Scanner to increase code reuse with maven/ant plugins + + Removed unneeded specialized TagLibConfiguration class from maven plugin + + Update jasper to glassfish tag SJSAS-9_1-B39-RC-14_Mar_2007 + +jetty-6.1.2rc1 - 08 March 2007 + + JETTY-157 make CGI handle binary data + + JETTY-175 JDBCUserRealm use getInt instead of getObject + + JETTY-188 Use timer for session scavaging + + JETTY-235 default realm name + + JETTY-242 fix race condition with scavenging sessions when stopping + + JETTY-243 FULL + + JETTY-244 Fixed UTF-8 buffer overflow + + JETTY-245 Client API improvements + + JETTY-246 spaces in cookies + + JETTY-248 setContentLength after content written + + JETTY-250 protect attribute enumerations from modification + + JETTY-252 Fixed stats handling of close connection + + JETTY-254 prevent close of jar file by bad JVMs + + add ajp connector jar to jetty-jboss sar + + Added option to allow null pathInfo within context + + Added support for lowResourcesIdleTime to SelectChannelConnector + + BoundedThreadPool queues rather than blocks excess jobs. + + call preDestroy() after servlet/filter destroy() + + Ensure jetty/jboss uses servlet-spec classloading order + + Fix constructor for Constraint to detect wildcard role + + fix Dump servlet to handle primitive array types + + handle comma separated values for the Connection: header + + Improved Context setters for wadi support + + Improved handling of early close in AJP + + Support null pathInfo option for webservices deployed to jetty/jboss + + TagLibConfiguration uses resource input stream + + Workaround to call SecurityAssocation.clear() for jboss webservices calls to + ejbs + +jetty-6.1.2rc0 - 15 February 2007 + + JETTY-223 Fix disassociate of UserPrincipal on dispatches + + JETTY-226 Fixed SSLEngine close issue + + JETTY-232 Fixed use of override web.xml + + JETTY-236 Buffer leak + + JETTY-237 AJPParser Buffer Data Handling + + JETTY-238 prevent form truncation + + Coma separated cookies + + Cometd timeout clients + + Patches from sybase for ClientCertAuthenticator + +jetty-6.1.2pre1 - 05 February 2007 + + JETTY-224 run build up to process-test before invoking jetty:run + + Added error handling for incorrect keystore/truststore password in + SslSelectChannelConnector + + added win32service to standard build + + allow ResourceHandler to use resource base from an enclosing ContextHandler + + fixed bug with virtual host handling in ContextHandlerCollection + + refactored cometd to be continuation independent + +jetty-6.1.2pre0 - 01 February 2007 + + JETTY-213 request.isUserInRole(String) fixed + + JETTY-215 exclude more transitive dependencies from tomcat jars for jsp-2.0 + + JETTY-216 handle AJP packet fragmentation + + JETTY-218 handle AJP ssl key size and integer + + JETTY-219 fixed trailing encoded chars in cookies + + JETTY-220 fixed AJP content + + JETTY-222 fix problem parsing faces-config.xml + + Added cometd jsonp transport from aabeling + + Added terracotta cluster support for cometd + + add support for Annotations in servlet, filter and listener sources + + enable SslSelectChannelConnector to modify the SslEngine's client + authentication settings + + Fixed 1.4 method in jetty plus + + Fixed generation of errors during jsp compilation for jsp-2.1 + + handle virtual hosts in ContextHandlerCollection + + improved writer buffering + + moved JSON parser to util to support reuse + +jetty-6.1.1 - 15 January 2007 + +jetty-6.1.1rc1 - 12 January 2007 + + JETTY-210 Build jsp-api-2.0 for java 1.4 + + Use timers for Rollover logs and scanner + +jetty-6.1.1rc0 - 10 January 2007 + + JETTY-209 Added ServletTester.createSocketConnector + + JETTY-210 Build servlet-api-2.5 for java 1.4 + + JETTY-211 fixed jboss build + + CGI servlet fails without exception + + ensure response headers on AjaxFilter messsages turn off caching + + extras/win32service download only if no JavaServiceWrapper exist + + Fixed unpacking WAR + + MultiPartFilter deleteFiles option + + simplified chat demo + + start webapps on deployment with jboss, use isDistributed() method from + WebAppContext + +jetty-6.1.0 - 09 January 2007 + + Fixed unpacking WAR + +jetty-6.1.0 - 05 January 2007 + + JETTY-206 fixed AJP getServerPort and getRemotePort + + Added extras/win32service + + Added WebAppContext.setCopyWebDir to avoid JVM jar caching issues. + + GERONIMO-2677 refactor of session id handling for clustering + + Improved config of java5 threadpool + + Protect context deployer from Errors + + ServletTester sets content length + +jetty-6.1.0rc3 - 02 January 2007 + + JETTY-195 fixed ajp ssl_cert handling + + JETTY-197 fixed getRemoteHost + + JETTY-203 initialize ServletHandler if no Context instance + + JETTY-204 setuid fix + + extras/servlet-tester + + implement resource injection and lifecycle callbacks declared in web.xml + + setLocale does not use default content type + + Use standard releases of servlet and jsp APIs. + +jetty-6.1.0rc2 - 20 December 2006 + + JETTY-167 cometd refactor + + JETTY-194 doubles slashes are significant in URIs + + JETTY-201 make run-as work for both web container and ejb container in jboss + + AJP13Parser, throw IllegalStateException on unimplemented AJP13 Requests + + ContextHandlerCollection is noop with no handlers + + ensure classpath passed to jspc contains file paths not urls + + ensure com.sun.el.Messages.properties included in jsp-2.1 jar + + ensure servlets initialized if only using ServletHandler + + fixed Jetty-197 AJP13 getRemoteHost() + + Refactored AbstractSessionManager for ehcache + + remove code to remove SecurityHandler if no constraints present + +jetty-6.1.0rc1 - 14 December 2006 + + JETTY-193 MailSessionReference without authentication + + JETTY-199 newClassPathResource + + added cache session manager(pre-alpha) + + ensure unique name for ServletHolder instances + + simplified idle timeout handling + +jetty-6.1.0rc0 - 08 December 2006 + + JETTY-123 fix improved + + JETTY-181 Allow injection of a java:comp Context + + JETTY-182 Optionally set JSP classpath initparameter + + JETTY-184 cometd connect non blocking + + JETTY-185 tmp filename generation + + JETTY-189 ProxyConnection + + 403 for BASIC authorization failure + + Added extras/gwt + + Added org.mortbay.thread.concurrent.ThreadPool + + Added spring ejb3 demo example + + DefaultHandler links virtual hosts. + + Dispatcher does not protect javax.servlet attributes + + Fixed cachesize on invalidate + + Fixed idle timeout + + flush if content-length written + + forward query attribute fix + + Handle request content encodings + + null for unknown named dispatches + + Optimization of writers + + ServletHandler allows non REQUEST exceptions to propogate + + Servlet role ref + + session attribute listener + + Support for RFC2518 102-processing response + + TCK fixes from Sybase: + + update jasper to glassfish SJSAS-9_1-B27-EA-07_Dec_2006 + +jetty-6.1.0pre3 - 22 November 2006 + + JETTY-154 Cookies are double quotes only + + JETTY-180 XBean support for context deploy + + CVE-2006-6969 Upgraded session ID generation to use SecureRandom + + Expose isResumed on Continuations + + fixed NIO endpoint flush. Avoid duplicate sends + + Refactored AJP generator + + Support TLS_DHE_RSA_WITH_AES_256_CBC_SHA + + updated glassfish jasper to tag SJSAS-9_1-B25-EA-08_Nov_2006 + +jetty-6.0.2 - 22 November 2006 + + JETTY-118 ignore extra content after close. + + JETTY-119 cleanedup Security optimizatoin + + JETTY-123 handle windows UNC paths + + JETTY-126 handle content > Integer.MAX_VALUE + + JETTY-129 ServletContextListeners called after servlets are initialized + + JETTY-151 Idle timeout only applies to blocking operations + + JETTY-154 Cookies are double quotes only + + JETTY-171 Fixed filter mapping + + JETTY-172 use getName() instead of toString + + JETTY-173 restore servletpath after dispatch + + (re)make JAAS classes available to webapp classloader + + add replacement in jetty xml config files + + Added concept of bufferred endpoint + + Added conversion Object -> ObjectName for the result of method calls made on + MBeans + + Added DataFilter configuration to cometd + + added examples/test-jaas-webapp + + Added extraClassPath to WebAppContext + + Added hierarchical destroy of mbeans + + Added ID constructor to AbstractSessionManager.Session + + added isStopped() in LifeCycle and AbstractLifeCycle + + Added override descriptor for deployment of RO webapps + + Allow session cookie to be refreshed + + alternate optimizations of writer (use -Dbuffer.writers=true) + + Apply queryEncoding to getQueryString + + CGI example in test webapp + + change examples/test-jndi-webapp so it can be regularly built + + Default soLinger is -1 (disabled) + + ensure "" returned for ServletContext.getContextPath() for root context + + ensure sessions nulled out on request recycle; ensure session null after + invalidate + + ensure setContextPath() works when invoked from jetty-web.xml + + fixed NIO endpoint flush. Avoid duplicate sends + + Fixed NPE in bio.SocketEndPoint.getRemoteAddr() + + Fixed resource cache flushing + + Fixed tld parsing for maven plugin + + HttpGenerator can generate requests + + Improved *-mbean.properties files and specialized some MBean + + Major refactor of SelectChannel EndPoint for client selector + + make .tag files work in packed wars + + Moved all modules updates from 6.1pre2 to 6.0 + + Plugin shutdown context before stopping it. + + Refactored session lifecycle and additional tests + + release resource lookup in Default servlet + + Reverted UnixCrypt to use coersions (that effected results) + + Session IDs can change worker ID + + Simplified ResourceCache and Default servlet + + SocketConnector closes all connections in doStop + + Support TLS_DHE_RSA_WITH_AES_256_CBC_SHA + + updated glassfish jasper to tag SJSAS-9_1-B25-EA-08_Nov_2006 + + Upgraded session ID generation to use SecureRandom + +jetty-5.1.14 - 09 August 2007 + + JETTY-155 force close with content length. + + JETTY-369 failed state in Container + + patched with correct version + +jetty-5.1.13 + + Sourceforge 1648335: problem setting version for AJP13 + +jetty-5.1.12 - 22 November 2006 + + JETTY-154 Cookies ignore single quotes + + Added support for TLS_DHE_RSA_WITH_AES_256_CBC_SHA + + AJP protected against bad requests from mod_jk + + Quote single quotes in cookies + + Upgraded session ID generation to use SecureRandom + +jetty-4.2.27 - 22 November 2006 + + AJP protected against bad requests from mod_jk + + Upgraded session ID generation to use SecureRandom + +jetty-6.1.0pre2 - 20 November 2006 + + Added extraClassPath to WebAppContext + + Clean up jboss module licensing + + Fixed resource cache flushing + +jetty-6.1.0pre1 - 19 November 2006 + + JETTY-151 Idle timeout only applies to blocking operations + + JETTY-171 Fixed filter mapping + + JETTY-172 use getName() instead of toString + + JETTY-173 restore servletpath after dispatch + + Added extras/jboss + + Added hierarchical destroy of mbeans + + Added override descriptor for deployment of RO webapps + + alternate optimizations of writer (use -Dbuffer.writers=true) + + Fixed NPE in bio.SocketEndPoint.getRemoteAddr() + + Major refactor of SelectChannel EndPoint for client selector + + release resource lookup in Default servlet + + Reverted UnixCrypt to use coersions (that effected results) + + Simplified ResourceCache and Default servlet + + Use ContextDeployer as main deployer in jetty.xml + +jetty-6.1.0pre0 - 21 October 2006 + + JETTY-112 ContextHandler checks if started + + JETTY-113 support optional query char encoding on requests + + JETTY-114 removed utf8 characters from code + + JETTY-115 Fixed addHeader + + JETTY-118 ignore extra content after close. + + JETTY-119 cleanedup Security optimizatoin + + JETTY-121 init not called on externally constructed servlets + + JETTY-123 handle windows UNC paths + + JETTY-124 always initialize filter caches + + JETTY-126 handle content > Integer.MAX_VALUE + + JETTY-129 ServletContextListeners called after servlets are initialized + + (re)make JAAS classes available to webapp classloader + + add replacement in jetty xml config files + + add a maven-jetty-jspc-plugin to do jspc precompilation + + added cometd chat demo + + Added concept of bufferred endpoint + + Added conversion Object -> ObjectName for the result of method calls made on + MBeans + + Added DataFilter configuration to cometd + + added examples/test-jaas-webapp + + Added extras/setuid to support start as root + + Added ID constructor to AbstractSessionManager.Session + + added isStopped() in LifeCycle and AbstractLifeCycle + + add hot deployment capability + + AJP Connector + + Allow session cookie to be refreshed + + Apply queryEncoding to getQueryString + + CGI example in test webapp + + change examples/test-jndi-webapp so it can be regularly built + + Default soLinger is -1 (disabled) + + ensure "" returned for ServletContext.getContextPath() for root context + + ensure sessions nulled out on request recycle; ensure session null after + invalidate + + ensure setContextPath() works when invoked from jetty-web.xml + + Factored ErrorPageErrorHandler out of WebAppContext + + fixed ClassCastException in JAASUserRealm.setRoleClassNames(String[]) + + fixed isUserInRole checking for JAASUserRealm + + Fixed tld parsing for maven plugin + + HttpGenerator can generate requests + + Improved *-mbean.properties files and specialized some MBean + + Improved charset handling in URLs + + JETYY-120 SelectChannelConnector closes all connections on stop + + make .tag files work in packed wars + + minor optimization of bytes to UTF8 strings + + Plugin shutdown context before stopping it. + + Ported HtAccessHandler + + Refactored ErrorHandler to avoid statics + + Refactored session lifecycle and additional tests + + Session IDs can change worker ID + + SocketConnector closes all connections in doStop + + Start of a client API + + Transforming classloader does not transform resources. + +jetty-5.1.11 - 08 October 2006 + + Default servlet only uses setContentLength on wrapped responses + + Fixed AJP chunk header (1507377) + + Fixed AJP handling of certificate length (1494939) + + fixed ByteBufferOutputStream capacity calculation + + Fixed order of destruction event calls + + Fix to HttpOutputStream from M.Traverso + +jetty-4.2.26 - 08 October 2006 + + Backport of AJP fixes + +jetty-6.0.1 - 24 September 2006 + + JETTY-112 ContextHandler checks if started + + JETTY-113 support optional query char encoding on requests + + JETTY-114 removed utf8 characters from code + + JETTY-115 Fixed addHeader + + JETTY-121 init not called on externally constructed servlets + + JETTY-124 always initialize filter caches + + Factored ErrorPageErrorHandler out of WebAppContext + + fixed ClassCastException in JAASUserRealm.setRoleClassNames(String[]) + + fixed isUserInRole checking for JAASUserRealm + + Improved charset handling in URLs + + JETYY-120 SelectChannelConnector closes all connections on stop + + minor optimization of bytes to UTF8 strings + + Refactored ErrorHandler to avoid statics + +jetty-6.0.0 - 10 September 2006 + + Conveniance builder methods for listeners and filters + + Plugin shutdown context before stopping it. + + SocketConnector closes all connections in doStop + + Transforming classloader does not transform resources. + +jetty-6.0.0rc4 - 05 September 2006 + + JETTY-107 Poor cast in SessionDump demo. + + bind jetty-env.xml entries to java:comp/env + + Set charset on error pages + +jetty-6.0.0rc3 - 01 September 2006 + + JETTY-68 Complete request after sendRedirect + + JETTY-104 (raised glassfish ISSUE-1044) hide JSP forced path attribute + + Avoid double error handling of Bad requests + + don't warn for content length on head requests + + JETTY-103 + + Less verbose handling of BadResources from bad URLs + + Move MailSessionReference to org.mortbay.naming.factories + + pulled 6.0.0 branch + + Transferred the sslengine patch from the patches directory to extras + +jetty-6.0.0rc2 - 25 August 2006 + + added org.apache.commons.logging package to system classes that can't be + overridden by a webapp classloader + + Destroy HttpConnection to improve buffer pooling + + Direct buffer useage is optional + + Fixed NPE when no resource cache + + Moved more utility packagtes to the util jar + + mvn -Djetty.port=x jetty:run uses port number given for the default + connector + + Refactored WebXmlConfiguration to allow custom web.xml resource + + Timestamp in StdErrLog + + use mvn -Dslf4j=false jetty:run to disable use of slf4j logging with + jdk1.4/jsp2.0 + +jetty-6.0.0rc1 - 16 August 2006 + + JETTY-85 JETTY-86 (TrustManager and SecureRandom are now configurable; + better handling of null/default values) + + add config param to jetty plugin + + added modules/spring with XmlBeanFactory configuration + + Added simple ResourceHandler and FileServer example + + added start of cometd implementation (JSON only) + + added start of grizzly connector + + Added TransformingWebAppClassLoader for spring 2.0 byte code modification + support + + Allow direct filling of buffers for uncached static content. + + Change path mapping so that a path spec of /foo/* does not match /foo.bar : + JETTY-88 + + -DSTOP.PORT must be specified. + + fixed bug that caused Response.setStatus to ignore the provided message + + Fixed FD leak for bad TCP acks. JETTY-63 + + JETTY-87 + + JETTY-90 + + JETTY-91 + + moved optional modules to extras + + parse jsp-property-group in web.xml for additional JSP servlet mappings + + protected setContentType from being set during include + + refactored resource cache + + removed org.mortbay. from context system classes configuration + + removed support for lowResources from SelectChannelConnector + + Support for binding References and Referenceables and javax.mail.Sessions in + JNDI + +jetty-6.0.0rc0 - 07 July 2006 + + add ability to have a lib/ext dir from which to recursively add all jars and + zips to the classpath + + Added 8 random letters&digits to Jetty-generated tmp work dir name to ensure + uniqueness + + added html module from jetty 5 - but deprecated until maintainer found + + Added maximum limit to filter chain cache. + + added setters and getters on SessionManager API for session related config: + cookie name, url parameter name, domain, max age and path. + + added StatisticsHandler and statistics on Connector. + + Added WebAppContextClassLoader.newInstance to better support exensible + loaders. + + allow or in for plugin + + changed ServletContext.getResourcePaths() to not return paths containing + double slashes + + change name of generated tmp directory to be + "Jetty_"+host+"_"+port+"_"+contextpath+"_"+virtualhost + + change prefix from "jetty6" to just "jetty" for plugin: eg is now mvn + jetty:run + + Cleaned up idle expiry. + + ContextHandlerCollection addContext and setContextClass + + Discard excess bytes in header buffer if connection is closing + + Do not wrap EofException with EofException + + ensure explicitly set tmp directory called "work" is not deleted on exit + + Ensure mvn clean cleans the build + + ensure war is only unpacked if war is newer than "work" directory + + fixed classesDirectory param for maven plugin to be configurable + + fixed HttpGenerator convertion of non UTF-8: JETTY-82 + + immutable getParameterMap() + + patch to allow Jetty to use JSP2.1 from Glassfish instead of Jasper from + Tomcat + + refactor HttpChannelEndPoint in preparation for SslEngine + + reverse order for destroy event listeners + + simplified jetty.xml with new constructor injections + + Simplified Servlet Context API + + Simplify runtime resolution of JSP library for plugin + + Ssl algorithm taken from system property + + support for SingleThreadModel + + support graceful shutdown + + Threadpool does not need to be a LifeCycle + + Updated javax code from + http://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/java/javax@417727 + +jetty-6.0.0beta17 - 01 June 2006 + + Added clover reports and enough tests to get >50% coverage + + Added config to disable file memory mapped buffers for windows + + Added Request.isHandled() + + BoundedThreadPool.doStop waits for threads to complete + + Connector lowResourceMaxIdleTime implemented. + + ContextHandler.setConnectors replace setHosts + + Default servlet checks for aliases resources + + don't reset headers during forward + + Fixed IE SSL issue. + + Flush will flush all bytes rather than just some. + + Implemented runAs on servlets + + Protected WEB-INF and META-INF + + Recovered repository from Codehaus crash + + Refactored Synchronization of SelectChannelConnector + +jetty-6.0.0beta16 - 12 May 2006 + + remove a couple of System.err.printlns + + replace backwards compativle API in UrlEncoded + +jetty-6.0.0beta15 - 11 May 2006 + + Added parameter to allow other locations to scan for plugin + + Added automatic scan of all WEB-INF/jetty-*.xml files for plugin + + Added embedded examples + + Added Server attribute org.mortbay.jetty.Request.maxFormContentSize + + Added taglib resources to 2.1 jsp api jar + + Added ThrottlingFilter and fixed race in Continuations + + Added --version to start.jar + + ContextHandler.setContextPath can be called after start. + + don't accept partial authority in request line. + + enforce 204 and 304 have no content + + Fixed handling of params after forward + + Improved HttpException + + improved MBeanContainer object removal + + improved MBean names + + improved support for java5 jconsole + + Major refactor to simplify Server and handler hierarchy + + Moved more resources to resources + + readded BoundedThreadPool shrinking (and then fixed resulting deadlock) + + removed SelectBlockingChannelConnector (unmaintained) + + Renamed NotFoundHandler to DefaultHandler + + Reset of timer task clears expiry + + Session scavenger threads from threadpool + + setSendServerVersion method added to Server to control sending of Server: + http header + + Simplified DefaultServlet static content buffering + + Thread names include URI if debug set + +jetty-6.0.0beta14 - 09 April 2006 + + added configurability for webdefault.xml in maven plugin + + Added Jasper 2.1 as jesper (jasper without JCL) + + added jetty-util.jar module + + Added JSP 2.1 APIs from apache + + added ProxyServlet + + added reset to Continuation + + added support for stopping jetty using "java -jar start.jar --stop" + + adding InvokerServlet + + Change tmp dir of plugin to work to be in line with jetty convention + + fixed forward bug (treated as include) + + fixed HttpField iterator + + fixed priority of port from url over host header + + ignore dirs and files that don't exist in plugin scanner + + implemented request.isUserInRole + + improved contentType handling and test harness + + Modify plugin to select JSP impl at runtime + + moved test webapps to examples directory + + securityHandler removed if not used. + + Started readding logging to jesper using jdk logging + + stop JDBCUserRealm coercing all credentials to String + + Use start.config to select which JSP impl at runtime based on jdk version + +jetty-6.0.0beta12 - 16 March 2006 + + Added JSP2.0 demos to test webapp + + Added provider support to SslListener + + Fixed error handling in error page + + Fixed JettyPlus for root contexts + + Fixed maven plugin JNDI for redeploys + + Fixed tld discovery for plugin (search dependencies) + + Log ERROR for runtimeExceptions + + Upgraded jasper to 5.5.15 + +jetty-6.0.0beta11 - 14 March 2006 + + Added HttpURI and improved UTF-8 parsing. + + added JAAS + + added missing Configurations for maven plugin + + added patch to use joda-time + + added webapp-specific JNDI entries + + fixed ; decoding in URIs + + fixed FORM authentication + + moved dtd and xsd to standard javax location + + refactored configuration files and start() + + refactored session ID management + + refactored writers and improved UTF-8 generation. + +jetty-6.0.0beta10 - 25 February 2006 + + added getLocalPort() to connector + + Added support for java:comp/env + + Added support for pluggable transaction manager + + Additional accessors for request logging + + Fixed content-type for range requests + + Fixed default servlet handling of includes + + Fix for myfaces and include with close + + Fix for sf1435795 30sec delay from c taylor + + Fix http://jira.codehaus.org/browse/JETTY-6. hi byte reader + + Fix sf1431936 don't chunk the chunk + + Forward masks include attributes and vice versa + + Updates javax to MR2 release + +jetty-6.0.0beta9 - 09 February 2006 + + Added CGI servlet. + + Added request log. + + Added TLD tag listener handling. + + Continuation cleanup + + Fixed dispatch of wrapped requests. + + Fixed double flush of short content. + + fixed setLocale bug sf1426940 + + Fixed unraw decoding of query string + + Force a tempdir to be set. + + Force jasper scratch dir. + + PathMap for direct context mapping. + + Refactored chat demo and upgraded prototype.js + +jetty-6.0.0beta8 - 24 January 2006 + + conveniance addHandler removeHandler methods + + fixed bug in overloaded write method on HttpConnection (reported against + Tapestry4.0) + + fixed dispatch of new session problem. sf:1407090 + + Handle pipeline requests without hangs + + hid org.apache.commons.logging and org.slf4j packages from webapp + + improve buffer return mechanism. + + improved caching of content types + + maven-jetty6-plugin: ensure compile is done before invoking jetty + + maven-jetty6-plugin: support all types of artifact dependencies + + maven-jetty6-plugin stopped transitive inclusion of log4j and + commons-logging from commons-el for jasper + + patch to remove spurious ; in HttpFields + + reinstated rfc2616 test harness + + Removed queue from thread pool. + +jetty-6.0.0Beta7 + + Faster header name lookup + + Fixed infinite loop with chunk handling + + maven-jetty6-plugin added tmpDirectory property + + maven-jetty6-plugin stopped throwing an error if there is no target/classes + directory + + null dispatch attributes not in names + + reduced info verbosity + + removed singleton Container + +jetty-6.0.0Beta6 + + Fixed issue with blocking reads + + Fixed issue with unknown headers + + optimizations + +jetty-6.0.0Beta5 + + Added management module for mbeans + + Fixed writer char[] creations + + Moved to SVN + +jetty-6.0.0Beta4 + + CVE-2006-2758 Fixed JSP visibility security issue. + + Improved jetty-web.xml access to org.mortbay classes. + + Jasper 5.5.12 + + System property support in plugin + +jetty-6.0.0Beta3 + + Fixed classloader issue with server classes + + Fixed error in block read + + Named dispatch. + +jetty-6.0.0Beta2 + + Improved buffer return + + Improved reuse of HttpField values and cookies. + + loosely coupled with JSP servlet + + loosely coupled with SLF4J + + merged util jar back into jetty jar + + Simpler continuation API + +jetty-6.0.0Beta1 + + Error pages + + Implemented all listeners + + maven2 plugin + + Multiple select sets + + refactored start/stop + + Servlet 2.5 API + + shutdown hook + + SSL connector + + Virtual hosts + +jetty-6.0.0Beta0 + + Dispatcher parameters + + Fixed blocking read + + Maven 2 build + + UTF-8 encoding for URLs + +jetty-6.0.0APLPA3 + + Added demo for Continuations + + Jasper and associated libraries. + +jetty-6.0.0ALPHA2 + + Continuations - way cool way to suspend a request and retry later. + + Dispatchers + + Security + +jetty-6.0.0ALPHA1 + + Filters + + web.xml handling + +jetty-6.0.0ALPHA0 + + file may be sent as sent is a single operation. + + Improved "dependancy injection" and "inversion of control" design of + components + + Improved "interceptor" design of handlers + + Missing Request Dispatchers + + Missing Security + + Missing war support + + Missing web.xml based configuration + + Optional use of NIO Buffering so that efficient direct buffers and memory + mapped files can be used. + + Optional use of NIO gather writes, so that for example a HTTP header and a + memory mapped + + Optional use of NIO non-blocking scheduling so that threads are not + allocated per connection. + + Smart split buffer design allows large buffers to only be allocated to + active connections. The resulting memory savings allow very large buffers to + be used, which increases the chance of efficient asynchronous flushing and + of avoiding chunking. + + Totally rearchitected and rebuilt, so 10 years of cruft could be removed! + +jetty-5.1.11RC0 - 05 April 2006 + + Added provider support to SslListener + + Fixed AJP handling of ;jsessionid. + + force close with shutdownOutput for win32 + + improved contentType param handling + + logging improvements for servlet and runtime exceptions + + NPE protection if desirable client certificates + + stop JDBCUserRealm forcing all credentials to be String + +jetty-5.1.10 - 05 January 2006 + + Fixed path aliasing with // on windows. + + Fix for AJP13 with encoded path + + Fix for AJP13 with multiple headers + + Put POST content default back to iso_8859_1. GET is UTF-8 still + + Remove null dispatch attributes from getAttributeNames + +jetty-4.2.25 - 04 January 2006 + + Fixed aliasing of // for win32 + +jetty-5.1.9 - 07 December 2005 + + Fixed wantClientAuth(false) overriding netClientAuth(true) + +jetty-6.0.0betaX + + See http://jetty.mortbay.org/jetty6 for 6.0 releases + +jetty-5.1.8 - 07 December 2005 + + Fixed space in URL issued created in 5.1.6 + +jetty-5.1.7 - 07 December 2005 + +jetty-5.1.7rc0 - 06 December 2005 + + better support for URI character encodings + + char encoding for MultiPartRequest + + fixed merging of POST params in dispatch query string. + + improved server stats + + JSP file servlet mappings copy JspServlet init params. + + Prefix servlet context logs with org.mortbay.jetty.context + + protect from NPE in dispatcher getValues + + Updated to 2.6.2 xerces + + use commons logging jar instead of api jar. + +jetty-5.1.6 - 18 November 2005 + + CVE-2006-2758 Fixed JSP visibility security issue. + + Improved jetty-web.xml access to org.mortbay classes. + +jetty-5.1.5 - 10 November 2005 + + Improved mapping of JSP files. + + Improved shutdown hook + + Improved URL Decoding + +jetty-5.1.5rc2 - 07 October 2005 + + ProxyHandler can handle chained proxies + + public ServerMBean constructor + + ReFixed merge of Dispatcher params + + Response.setLocale will set locale even if getWriter called. + + Reverted dispatcher params to RI rather than spec behaviour. + + unsynchronized ContextLoader + + UTF-8 encoding for URLs + +jetty-5.1.5rc1 - 23 August 2005 + + Encoded full path in ResourceHandler directory listing + + Fixed 100-continues with chunking and early commit + + Fixed illegal state with chunks and 100 continue - Tony Seebregts + + Fixed merge of Dispatcher parameters + + Fixed PKCS12Import input string method + + handle extra params after charset in header + + Release commons logging factories when stopping context. + + upgraded to commons logging 1.0.4 + +jetty-5.1.5rc0 - 16 August 2005 + + Applied ciphersuite patch from tonyj + + Authenticators use servlet sendError + + CGI sets SCRIPT_FILENAME + + Expect continues only sent if input is read. + + Facade over commons LogFactory so that discovery may be avoided. + + Fixed component remove memory leak for stop/start cycles + + HttpTunnel timeout + + NPE protection for double stop in ThreadedServer + +jetty-5.1.4 - 05 June 2005 + + Change JAAS impl to be more flexible on finding roles + + Fixed FTP close issue. + + ModelMBean handles null signatures + + NPE protection in ThreadedServer + + set classloader during webapp doStop + + setup MX4J with JDK1.5 in start.config + +jetty-5.1.4rc0 - 19 April 2005 + + Allow ServletHandler in normal HttpContext again. + + HttpServer delegates component handling to Container. + + More protection from null classloaders. + + ServletHttpContext correctly calls super.doStop. + + Stop start.jar putting current directory on classpath. + + Turn off web.xml validation for JBoss. + +jetty-5.1.3 - 07 April 2005 + + Some minor code janitorial services + +jetty-4.2.24 - 07 April 2005 + +jetty-5.1.3rc4 - 31 March 2005 + + Allow XmlConfiguration to start with no object. + + make java:comp/env immutable for webapps as per J2EE spec + + Moved servlet request wrapping to enterContextScope for geronimo security + + refixed / mapping for filters + + rework InitialContextFactory to use static 'default' namespace + + updated to mx4j 3.0.1 + +jetty-5.1.3rc3 - 20 March 2005 + + fixed "No getter or setter found" mbean errors + + removed accidental enablement of DEBUG for JettyPlus jndi in + log4j.properties + +jetty-5.1.3rc2 - 16 March 2005 + + Fixed context to _context refactory error + + Updated JSR154Filter for ERROR dispatch + +jetty-5.1.3rc1 - 13 March 2005 + + Fixed principal naming in FormAuthenticator + + Fixed typo in context-param handling. + + JettyPlus updated to JOTM 2.0.5, XAPool 1.4.2 + + update to demo site look and feel. + +jetty-4.2.24rc1 + + Fixed principal naming in FormAuthenticator + +jetty-5.1.3rc0 - 08 March 2005 + + Added logCookie and logLatency support to NCSARequestLog + + Added new JAAS callback to allow extra login form fields in authentication + + Added simple xpath support to XmlParser + + Added SslListener for 1.4 JSSE API. + + Added TagLibConfiguration to search for listeners in TLDs. + + Allow system and server classes to be configured for context loader. + + Fixed HTAccess crypt salt handling. + + Fixed JSR154 error dispatch with explicit pass of type. + + Fixed moderate load preventing ThreadPool shrinking. + + Fixed rollover filename format bug + + Flush filter chain caches on servlet/filter change + + IOException if EOF read during chunk. + +jetty-4.2.24rc0 - 08 March 2005 + + Added logCookie and logLatency support to NCSARequestLog + + Back ported Jetty 5 ThreadedServer and ThreadPool + +jetty-5.1.2 - 18 January 2005 + + Added id and ref support to XmlConfiguration + + Apply patch #1103953 + + Cleaned up AbstractSessionManager synchronization. + + Fixed potential concurrent login problem with JAAS + +jetty-4.2.23 - 16 January 2005 + + Cleaned up AbstractSessionManager synchronization. + + Fixed potential concurrent login problem with JAAS + +jetty-5.1.2pre0 - 22 December 2004 + + Added global invalidation to AbstractSessionManager + + Fixed case of Cookie parameters + + Fixed suffix filters + + Modified useRequestedID handling to only use IDs from other contexts + + Support Secure and HttpOnly in session cookies + + UnavailableException handling from handle + +jetty-4.2.23RC0 - 17 December 2004 + + Added LogStream to capture stderr and stdout to logging + + Build unsealed jars + + LineInput handles readers with small internal buffer + + Support Secure and HttpOnly in session cookies + +jetty-5.1.1 - 01 December 2004 + +jetty-5.1.1RC1 + + Allow double // within URIs + + Applied patch for MD5 hashed credentials for MD5 + + Fixed ordering of filters with multiple interleaved mappings. + + Made more WebApplicationHandle configuration methods public. + + Some minor findbugs code cleanups + +jetty-5.1.1RC0 - 17 November 2004 + + added new contributed shell start/stop script + + excluded ErrorPageHandler from standard build in extra/jdk1.2 build + + fix commons logging imports to IbmJsseListener + + fix for adding recognized EventListeners + +jetty-5.1.0 - 14 November 2004 + +jetty-5.1.RC1 - 24 October 2004 + + Allow JSSE listener to be just confidential or just integral. + + Allow multiple accepting threads + + Build unsealed jars + + default / mapping does not apply to Filters + + Fixed NPE for null contenttype + + improved clean targets + + many minor cleanups suggested from figbug utility + + Partially flush writers on every write so content length can be detected. + + when committed setHeader is a noop rather than IllegalStateException + +jetty-5.1.RC0 - 11 October 2004 + + Added filter chain cache + + Added JSR77 servlet statistic support + + Added LifeCycle events and generic container. + + Added LogStream to capture stderr and stdout to logging + + Fixed HTAccessHandler + + Fixed many minor issues from J2EE 1.4 TCK testing See sf.net bugs 1031520 - + 1032205 + + JBoss 4.0.0 support + + LineInput handles readers with small internal buffer + + Refactored, simplified and optimized HttpOutputStream + + Refactored webapp context configurations + + Upgraded to ant-1.6 for jasper + +jetty-5.0.0 - 10 September 2004 + +jetty-5.0.RC4 - 05 September 2004 + + Fixed configuration of URL alias checking + + JettyJBoss: Use realm-name from web.xml if present, otherwise use + security-domain from jboss-web.xml + +jetty-5.0.RC3 - 28 August 2004 + + Added parameters for acceptQueueSize and lowResources level. + + Always say close for HTTP/1.0 non keep alive. + + Changed default URI encoding to UTF-8 + + DIGEST auth handles qop, stale and maxNonceAge. + + fixed deployment of ejb-link elements in web.xml with jboss + + fixed jaas logout for jetty-jboss + + Fixes to work with java 1.5 + + JettyPlus addition of pluggable DataSources + + JettyPlus upgrade to XAPool 1.3.3. and HSQLDB 1.7.2 + + Less verbose warning for non validating xml parser. + + Update to jasper 5.0.27 + +jetty-4.2.22 + + Added parameters for acceptQueueSize and lowResources level. + + fixed deployment of ejb-link elements in web.xml for jboss + + fixed jaas logout for jetty-jboss integration + +jetty-5.0.RC2 - 02 July 2004 + + add JMX support for JettyPlus + + add listing of java:comp/env for webapp with JMX + + Default servlet may use only pathInfo for resource + + Error dispatchers are always GET requests. + + Fixed DIGEST challenge delimiters + + Fixed JAAS logout + + Fixed no-role security constraint combination. + + Fixed session leak in j2ee + + Fix to use runas roles during servlet init and destroy + + HTAccess calls UnixCrypt correctly + + HttpContext sendError for authentication errors + + integrated jetty-jboss with jboss-3.2.4 + + make choice of override of JNDI ENC entries: config.xml or web.xml + + OPTIONS works for all URLs on default servlet + +jetty-4.2.21 - 02 July 2004 + + add JMX support for JettyPlus + + add listing of java:comp/env for webapp with JMX + + Fixed JAAS logout + + integrated jetty-jboss with jboss-3.2.4 + + make choice of override of JNDI ENC entries: config.xml or web.xml + +jetty-5.0.RC1 - 24 May 2004 + + added extra/etc/start-plus.config to set up main.class for jettyplus + + Changed to apache 2.0 license + + Fixed HTTP tunnel timeout setting. + + FORM auth redirects to context on a re-auth + + Handle multiple virutal hosts from JBoss 3.2.4RC2 + + Improved handling of exception from servlet init. + + maxFormContentLength may be unlimited with <0 value + +jetty-4.2.20 - 22 May 2004 + + Fixed HTTP tunnel timeout setting. + + FORM auth redirects to context on a re-auth + + Improved handling of exception from servlet init. + + maxFormContentLength may be unlimited with <0 value + +jetty-5.0.0RC0 - 07 April 2004 + + Changed dist naming convention to lowercase + + Default servlet respectes servlet path + + Factored out XML based config from WebApplicationContext + + Fixed Default servlet for non empty servlet paths + + Fixed DOS problem + + Fixed j2se 1.3 problem with HttpFields + + Fixed setCharacterEncoding for parameters. + + Forced close of connections over stop/start + + Improved RequestLog performance + + ProxiedFor field support added to NCSARequestLog + + ServletContext attributes wrap HttpContext attributes. + + Updated jasper to 5.0.19 + + Updated JettyPlus to JOTM 1.4.3 (carol-1.5.2, xapool-1.3.1) + + Updated mx4j to V2 + + Worked around bad jboss URL handler in XMLParser + +jetty-4.2.20RC0 - 07 April 2004 + + Changed dist naming convention to lowercase + + Fixed Default servlet for non empty servlet paths + + Forced close of connections over stop/start + + HttpFields protected headers + + ProxiedFor field support added to NCSARequestLog + + Worked around bad jboss URL handler in XMLParser + +jetty-4.2.19 - 19 March 2004 + + Fixed DOS attack problem + +jetty-5.0.beta2 - 12 February 2004 + + Added experimental NIO listeners again. + + Added log4j context repository to jettyplus + + Added skeleton JMX MBean for jetty plus + + FileResource better handles non sun JVM + + Fixed busy loop in threadpool run + + fixed filter dispatch configuration. + + Fixed HEAD with empty chunk bug. + + Fixed jetty.home/work handling + + fixed lazy authentication with FORMs + + Fixed SessionManager init + + Fixed setDate thread safety + + Improved low thread handling + + Monitor closes socket before exit + + NPE guard for no-listener junit deployment + + Reorganized ServletHolder init + + RequestDispatcher uses request encoding for query params + + Updated to Japser 5.0.16 + +jetty-4.2.18 - 01 March 2004 + + Added log4j context repository to jettyplus + + Default servlet respectes servlet path + + Fixed j2se 1.3 problem with HttpFields + + Improved log performance + + NPE guard for no-listener junit deployment + + Suppress some more IOExceptions + +jetty-4.2.17 - 01 February 2004 + + Fixed busy loop in threadpool run + + Reorganized ServletHolder init + +jetty-4.2.16 - 30 January 2004 + + FileResource better handles non sun JVM + + Fixed HttpTunnel for JDK 1.2 + + Fixed setDate multi-cpu race + + Improved low thread handling + + Monitor closes socket before exit + + RequestDispatcher uses request encoding for query params + + Update jasper to 4.1.29 + +jetty-5.0.beta1 - 24 December 2003 + + Added patch for JBoss realm single sign on + + Env variables for CGI + + Fixed UnixCrypt handling in HTAccessHandler + + Removed support for old JBoss clustering + + Reorganized FAQ + + SecurityConstraints not reset by stop() on custom context + +jetty-4.2.15 - 24 December 2003 + + Added patch for JBoss realm single sign on + + Environment variables for CGI + + Fixed UnixCrypt handling in HTAccessHandler + + Removed support for old JBoss clustering + + SecurityConstraints not reset by stop() on custom context + +jetty-5.0.beta0 - 22 November 2003 + + Added MsieSslHandler to handle browsers that don't grok persistent SSL (msie + 5) + + Added org.mortbay.http.ErrorHandler for error pages. + + Allow per listener handlers + + Expire pages that contain set-cookie as per RFC2109 recommendation + + Fixed init race in HttpFields cache + + JBoss integration uses writer rather than stream for XML config handling + + PathMap uses own Map.Entry impl for IBM JVMs + + Protect ThreadPool.run() from interrupted exceptions + + Removed support for HTTP trailers + + Removed the CMR/CMP distributed session implementation + + Respect content length when decoding form content. + + Updated jasper to 5.0.14beta + + Use ${jetty.home}/work or WEB-INF/work for temp directories if present + +jetty-4.2.15rc0 - 22 November 2003 + + Added org.mortbay.http.ErrorHandler for error pages. + + JsseListener checks UserAgent for browsers that can't grok persistent SSL + (msie5) + + PathMap uses own Map.Entry impl for IBM JVMs + + Protect ThreadPool.run() from interrupted exceptions + + Race in HttpFields cache + + Removed the CMR/CMP distributed session implementation + + Use ${jetty.home}/work or WEB-INF/work for temp directories if present + +jetty-4.2.14 - 04 November 2003 + + Expire pages that contain set-cookie as per RFC2109 recommendation + + Fixed NPE in SSO + + JBoss integration uses writer rather than stream for XML config handling + + respect content length when decoding form content. + +jetty-5.0.alpha3 - 19 October 2003 + + Allow customization of HttpConnections + + Failed requests excluded from duration stats + + FileClassPath derived from walk of classloader hierarchy. + + Fixed null pointer if no sevices configured for JettyPlus + + Implemented security constraint combinations + + Lazy authentication if no auth constraint. + + Priority added to ThreadPool + + replaced win32 service with http://wrapper.tanukisoftware.org + + Restore servlet handler after dispatch + + Reworked Dispatcher to better support cross context sessions. + + Set TransactionManager on JettyPlus datasources and pools + + Updated jasper and examples to 5.0.12 + + Use File.toURI().toURL() when jdk 1.2 alternative is available. + +jetty-4.2.14RC1 - 19 October 2003 + + Added UserRealm.logout and arrange for form auth + + Allow customization of HttpConnections + + Failed requests excluded from + + Reworked Dispatcher to better support cross context sessions. + +jetty-4.2.14RC0 - 07 October 2003 + + Build fileclasspath from a walk of the classloaders + + cookie timestamps are in GMT + + Correctly setup context classloader in cross context dispatch. + + Fixed comments with embedded double dashes on jettyplus.xml file + + Fixed handling of error pages for IO and Servlet exceptions + + Fixed null pointer if no sevices configured for JettyPlus + + Priority on ThreadedServer + + Put a semi busy loop into proxy tunnels for IE problems + + replaced win32 service with http://wrapper.tanukisoftware.org + + Set TransactionManager on JettyPlus datasources and pools + + updated extra/j2ee to jboss 3.2.1+ + + Use File.toURI().toURL() when jdk 1.2 alternative is available. + +jetty-5.0.alpha2 - 19 September 2003 + + Correctly setup context classloader in cross context dispatch. + + Fixed error page handling of IO and Servlet exceptions. + + Implemented ServletRequestListeners as optional filter. + + Improved JMX start. + + minor doco updates. + + Moved error page mechanism to be webapp only. + + moved mailing lists to sourceforge. + + MultipartRequest supports multi value headers. + + Put a semi busy loop into proxy tunnels for IE problems + + Turn off validation without non-xerces errors + + Update jakarta examples + + Use commons logging. + + Use log4j if extra is present. + + XML entity resolution uses URLs not Resources + +jetty-5.0.alpha1 - 12 August 2003 + + Implemented locale encoding mapping. + + Improve combinations of Security Constraints + + Server javadoc from war + + Switched to mx4j + + Synced with 4.2.12 + + Updated to Jasper 5.0.7 + +jetty-5.0.alpha0 - 16 July 2003 + + Compiled against 2.4 servlet spec. + + Implemented Dispatcher forward attributes. + + Implemented filter-mapping element + + Implemented remote/local addr/port methods + + Implemented setCharaterEncoding + + Updated authentication so that a normal Principal is used. + + updated to jasper 5.0.3 + +jetty-4.2.12 - 12 August 2003 + + Added missing S to some OPTIONS strings + + Added open method to threaded server. + + Fixed MIME types for chemicals + + Fixed parameter ordering for a forward request. + + Fixed up HTAccessHandler + + FORMAuthenticator does 403 with empty error page. + + Improved error messages from ProxyHandler + + Padding for IE in RootNotFoundHandler + + Removed protection of org.mortbay.http attributes + + Restore max inactive interval for session manager + +jetty-4.2.11 - 12 July 2003 + + Branched for Jetty 5 development. + + Cookie params all in lower case. + + Fixed race in servlet initialization code. + + Prevent AJP13 from reordering query. + + Simplified AJP13 connection handling. + + Support separate Monitor class for start + +jetty-4.2.10 - 07 July 2003 + + Updates to JettyPlus documentation + + Updates to Jetty tutorial for start.jar, jmx etc + +jetty-4.2.10pre2 - 04 July 2003 + + Addition of mail service for JettyPlus + + Allow multiple security-role-ref elements per servlet. + + Cleaned up alias handling. + + Confidential redirection includes query + + Fixed cookie handling for old cookies and safari + + handle multiple security role references + + Handle Proxy-Connection better + + Improvement to JettyPlus config of datasources and connection pools + + Many improvements in JettyPlus java:comp handling + + Move to Service-based architecture for JettyPlus features + + Re-implementation of JNDI + + Restricted ports in ProxyHandler. + + Session statistics + + URI always encodes % + + XmlConfiguration can get/set fields. + +jetty-4.2.10pre1 - 02 June 2003 + + Added SSO implementation for FORM authentication. + + Added stop.jar + + Deprecated forced chunking. + + Fixed AJP13 protocol so that request/response header enums are correct. + + Fixed form auth success redirect after retry, introduced in 4.2.9rc1 + + Fixed JSP code visibility problem introduced in Jetty-4.2.10pre0 + + Fixed problem with shared session for inter context dispatching. + + Form authentication remembers URL over 403 + + ProxyHandler has improved test for request content + + Removed support of org.mortbay.http.User role. + + Trace support is now optional (in AbstractHttpHandler). + + WebApplicationContext does not reassign defaults descriptor value. + +jetty-4.2.10pre0 - 05 May 2003 + + Added ability to override jetty startup class by using -Djetty.server on + runline + + Allow params in form auth URLs + + Allow query params in error page URL. + + Apply the append flag of RolloverFileOutputStream constructor. + + Fixed CRLF bug in MultiPartRequest + + Fixed table refs in JDBCUserRealm. + + FORM Authentication is serializable for session distribution. + + getAuthType maps the HttpServletRequest final strings. + + getAuthType returns CLIENT_CERT instead of CLIENT-CERT. + + Incorporate jetty extra and plus into build + + Incorporate JettyPlus jotm etc into build. + + Integrate with JAAS + + Massive reorg of the CVS tree. + + Merge multivalued parameters in dispatcher. + + Moved Log4JLogSink into JettyPlus + + New look and feel for www site. + + ProxyHandler checks black and white lists for Connect. + + RolloverFileOutputStream manages Rollover thread. + + Updated to jasper jars from tomcat 4.1.24 + + Warn if max form content size is reached. + +jetty-4.2.9 - 19 March 2003 + + Conditional headers check after /dir to /dir/ redirection. + +jetty-4.2.9rc2 - 16 March 2003 + + Added X-Forwarded-For header in ProxyHandler + + Allow dispatch to j_security_check + + Defaults descriptor has context classloader set. + + Fixed build.xml for source release + + Made rfc2068 PUT/POST Continues support optional. + + Updated included jmx jars + +jetty-4.2.9rc1 - 06 March 2003 + + Added requestlog to HttpContext. + + Added support for client certs to AJP13. + + Added trust manager support to SunJsseListener. + + Allow delegated creation of WebApplication derivations. + + Check Data contraints before Auth constraints + + Cleaned up includes + + Dump servlet can load resources for testing now. + + Optional 2.4 behaviour for sessionDestroyed notification. + + ProxyHandler has black and white host list. + + Reduced default context cache sizes (Total 1MB file 100KB). + + Removed checking for single valued headers. + + Stop proxy url from doing user interaction. + + Turn request log buffering off by default. + + Work around URLClassloader not handling leading / + +jetty-4.2.8_01 - 18 February 2003 + + Added a SetResponseHeadersHandler, can set P3P headers etc. + + Added MBeans for Servlets and Filters + + Added option to resolve remote hostnames. Defaults to off. + + Default servlet can have own resourceBase. + + Fixed AdminServlet to handle changed getServletPath better. + + Fixed CGI servlet to handle multiple headers. + + Moved ProxyHandler to the src1.4 tree + + Patched first release of 4.2.8 with correct version number + + ProxyHandler can handle multiple cookies. + + Rolled back SocketChannelListener to 4.2.5 version + +jetty-4.2.7 - 04 February 2003 + + Changed PathMap to conform to / getServletPath handling. + + Fixed proxy tunnel for non persistent connections. + + Relative sendRedirect handles trailing / correctly. + + Upgraded to JSSE 1.0.3_01 to fix security problem. + +jetty-4.2.6 - 24 January 2003 + + Added HttpContext.setHosts to restrict context by real interface. + + Added MBeans for session managers + + Added version to HttpServerMBean. + + Allow AJP13 buffers to be resized. + + ClientCertAuthentication updates request. + + Fixed LineInput problem with expanded buffers. + + Fixed rel sendRedirects for root context. + + Improved SocketChannelListener contributed. + + Improved synchronization on AbstractSessionManager. + +jetty-4.2.5 - 14 January 2003 + + Added Log4jSink in the contrib directory. + + Don't process conditional headers and ranges for includes + + Fixed pathParam bug for ;jsessionid + + Fixed requestedSessionId null bug. + +jetty-4.2.4 - 04 January 2003 + + Added MBeans for handlers + + Clear context attributes after stop. + + Clear context listeners after stop. + + Fixed stop/start handling of servlet context + + HTAccessHandler checks realm as well as htpassword. + + Reuse empty LogSink slots. + + Upgraded jasper to 4.1.18 + + Use requestedSessionId as default session ID. + +jetty-4.2.4rc0 - 12 December 2002 + + Added gzip content encoding support to Default and ResourceHandler + + Added HttpContext.flushCache + + Allow empty host header. + + Avoid optional 100 continues. + + Better access to session manager. + + Character encoding handling for GET requests. + + Cheap clear for HttpFields + + Cleaned up some unused listener throws. + + Code logs objects rather than strings. + + Configurable root context. + + Dir listings in UTF8 + + Fixed dir listing from jars. + + Fixed isSecure and getScheme for SSL over AJP13 + + Fixed setBufferSize NPE. + + Handle = in param values. + + Handle chunked form data. + + Implemented RFC2817 CONNECT in ProxyHandler + + Improved ProxyHandler to the point is works well for non SSL. + + Improved setBufferSize handling + + Limit form content size. + + Removed container transfer encoding handling. + + RootNotFoundHandler to help when no context found. + + Simplified ThreadedServer + + Update jasper to 4.1.16beta + + Use ThreadLocals for ByteArrayPool to avoid synchronization. + + Use Version to reset HttpFields + +jetty-4.2.3 - 02 December 2002 + + Added links to Jetty Powered page + + added main() to org.mortbay.http.Version + + Added PKCS12Import class to import PKCS12 key directly + + Check form authentication config for leading / + + Cleaner servlet stop to avoid extra synchronization on handle + + Clean up of ThreadedServer.stop() + + Fixed some typos + + org.mortbay.http.HttpContext.FileClassPathAttribute + + Removed aggressive threadpool shrinkage to avoid deadlock on SMP machines. + + removed old HttpContext.setDirAllowed() + + Updated bat scripts + +jetty-4.2.2 - 20 November 2002 + + Added EOFException to reduce log verbosity on closed connections. + + Avoided bad buffer status after closed connection. + + Fixed handling of empty headers + + Fixed sendRedirect for non http URLS + + Fixed URI query recycling for persistent connections + +jetty-4.2.1 - 18 November 2002 + + Fixed bad optimization in UrlEncoding + + Re-enabled UrlEncoding test harnesses + +jetty-4.2.0 - 16 November 2002 + + Added definitions for RFC2518 WebDav response codes. + + Added upload demo to dump servlet. + + Fixed AJP13 buffer size. + + Fixed include of Invoker servlet. + + Fixed remove listener bug. + + Lowercase jsessionid for URLs only. + + Made NCSARequestLog easier to extend. + + Many more optimizations. + + Removed jasper source and just include jars from 4.1.12 + + Removed remaining non portable getBytes() calls + + Restrict 304 responses to seconds time resolution. + + Use IE date formatting for speed. + + Worked around JVM1.3 bug for JSPs + +jetty-4.1.4 - 16 November 2002 + + Fixed ContextLoader parent delegation bug + + Fixed Invoker servlet for RD.include + + Fixed remove SocketListener bug. + + Last modified handling uses second resolution. + + Made NCSARequestLog simpler to extend. + + Use IE date formatting for last-modified efficiency + +jetty-4.2.0rc1 - 02 November 2002 + + Fixed ContextLoader parent delegation bug. + + Fixed directory resource bug in JarFileResource. + + Fixed firstWrite after commit. + + Fixed problem setting the size of chunked buffers. + + Fixed servletpath on invoker for named servlets. + + Improved handling of 2 byte encoded characters within forms. + + Recycling of HttpFields class. + + Removed unused Servlet and Servlet-Engine headers. + + Renamed Filter application methods. + + Support default mime mapping defined by * + +jetty-4.2.0rc0 - 24 October 2002 + + Added authenticator to admin.xml + + Added embedded iso8859 writer to HttpOutputStream. + + Fixed RolloverFileOutputStream without date. + + Fixed SessionManager initialization + + Fixed Session timeout NPE. + + Greg's birthday release! + + Removed duplicate classes from jar + +jetty-4.1.3 - 24 October 2002 + + Added authenticator to admin.xml + + Fixed RolloverFileOutputStream without date. + + Fixed SessionManager initialization + + Fixed Session timeout NPE. + +jetty-4.0.6 - 24 October 2002 + + Clear interrupted status in ThreadPool + + fixed forward attribute handling for jsp-file servlets + + Fixed forward query string handling + + Fixed handling of relative sendRedirect after forward. + + Fixed setCharacterEncoding to work with getReader + + Fixed virtual hosts temp directories. + +jetty-4.2.0beta0 - 13 October 2002 + + 404 instead of 403 for WEB-INF requests + + Allow %3B encoded ; in URLs + + Allow anonymous realm + + Build without jmx + + Fixed bad log dir detection + + Fixed caching of directories to avoid shared buffers. + + Fix Session invalidation bug + + FORM authentication sets 403 error page + + getNamedDispatcher(null) returns containers default servlet. + + New AJP13 implementation. + + New Buffering implementation. + + New ThreadPool implementation. + + Removed Dispatcher dependancy on ServletHttpContext + + Stop/Start filters in declaration order. + + unquote charset in content type + + Update jasper to 4.1.12 tag + + Use "standard" names for default,jsp & invoker servlets. + +jetty-4.1.2 - 13 October 2002 + + 404 instead of 403 for WEB-INF requests + + Allow %3B encoded ; in URLs + + Allow anonymous realm + + Build without jmx + + Fixed bad log dir detection + + Fixed caching of directories to avoid shared buffers. + + Fix Session invalidation bug + + FORM authentication sets 403 error page + + getNamedDispatcher(null) returns containers default servlet. + + Some AJP13 optimizations. + + Stop/Start filters in declaration order. + + unquote charset in content type + + Update jasper to 4.1.12 tag + + Use "standard" names for default,jsp & invoker servlets. + +jetty-4.1.1 - 30 September 2002 + + Avoid setting sotimeout for optimization. + + Cache directory listings. + + Deprecated maxReadTime. + + Fixed client scripting vulnerability with jasper2. + + Fixed infinite recursion in JDBCUserRealm + + Fixed space in resource name handling for jdk1.4 + + Merged LimitedNCSARequestLog into NCSARequestLog + + Moved launcher/src to src/org/mortbay/start + + String comparison of If-Modified-Since headers. + + Touch files when expanding jars + +jetty-4.1.0 - 22 September 2002 + + Added LimitedNCSARequestLog + + ClientCertAuthenticator protected from null subjectDN + + Context Initparams to control session cookie domain, path and age. + + Fixed AJP13 handling of mod_jk loadbalancing. + + Fixed CGI+windows security hole. + + Handle unremovable tempdir. + + NCSARequest log buffered default + + Sorted directory listings. + + Stop servlets in opposite order to start. + + Use javac -target 1.2 for normal classes + + WEB-INF/classes before WEB-INF/lib + +jetty-4.1.0RC6 - 14 September 2002 + + Added logon.jsp for no cookie form authentication. + + Added redirect to welcome file option. + + Cleaned up old debug. + + Don't URL encode FileURLS. + + Encode URLs of Authentication redirections. + + Extended Session API to pass request for jvmRoute handling + + Fixed problem with AJP 304 responses. + + FormAuthenticator uses normal redirections now. + + Improved HashUserRealm doco + + Improved look and feel of demo + +jetty-4.1.0RC5 - 08 September 2002 + + Added commandPrefix init param to CGI + + AJP13Listener caught up with HttpConnection changes. + + Implemented security-role-ref for isUserInRole. + + Improved errors for misconfigured realms. + + More cleanup in ThreadPool for idle death. + +jetty-4.1.0RC4 - 30 August 2002 + + Created statsLock sync objects to avoid deadlock when stopping. + + Included IbmJsseListener in the contrib directory. + + Reverted to 302 for all redirections as all clients do not understand 303 + + Updated jasper2 to 4.1.10 tag. + +jetty-4.1.0RC3 - 28 August 2002 + + Added buffering to request log + + Added defaults descriptor to addWebApplications. + + addWebApplications encodes paths to allow for spaces in file names. + + Allow FORM auth pages to be within security constraint. + + Allow WebApplicationHandler to be used with other handlers. + + Created and integrated the Jetty Launcher + + Fixed security problem for suffix matching with trailing "/" + + Improved handling of path encoding in Resources for bad JVMs + + Improved handling of PUT,DELETE & MOVE. + + Made Resource canonicalize it's base path for directories + +jetty-4.1.0RC2 - 20 August 2002 + + Added HttpListener.bufferReserve + + Build ant, src and zip versions with the release + + Clear interrupted status in ThreadPool + + Conveninace setClassLoaderJava2Compliant method. + + Fixed HttpFields cache overflow + + Improved ByteArrayPool to handle multiple sizes. + + Updated to Jasper2 (4_1_9 tag) + + Use system line separator for log files. + +jetty-4.1.0RC1 - 11 August 2002 + + Fixed forward query string handling + + Fixed forward to jsp-file servlet + + Fixed getContext to use canonical contextPathSpec + + Fixed handling of relative sendRedirect after forward. + + Fixed setCharacterEncoding to work with getReader + + Improved the return codes for PUT + + Made HttpServer serializable + + Updated international URI doco + + Updated jasper to CVS snapshot 200208011920 + +jetty-4.1.0RC0 - 31 July 2002 + + Added DigestAuthenticator + + Added ExpiryHandler which can set a default Expires header. + + Added link to a Jetty page in Korean. + + Changed URI default charset back to ISO_8859_1 + + Fixed getRealPath for packed war files. + + Restructured Password into Password and Credentials + +jetty-4.0.5 - 31 July 2002 + + Fixed getRealPath for packed war files. + + Fixed getRequestURI for RD.forward to return new URI. + + Reversed order of ServletContextListener.contextDestroyed calls + +jetty-4.1.B1 - 19 July 2002 + + Added 2.4 Filter dispatching support. + + Added PUT,DELETE,MOVE support to webapps. + + CGI Servlet, catch and report program invocation failure status. + + CGI Servlet, fixed suffix mapping problem. + + CGI Servlet, pass all HTTP headers through. + + CGI Servlet, set working directory for exec + + Moved dynamic servlet handling to Invoker servlet. + + Moved webapp resource handling to Default servlet. + + Reversed order of ServletContextListener.contextDestroyed calls + + Sessions create attribute map lazily. + + Support HTTP/0.9 requests again + + Updated mini.http.jar target + +jetty-3.1.9 - 15 July 2002 + + Allow doHead requests to be forwarded. + + Fixed race in ThreadPool for minThreads <= CPUs + +jetty-4.1.B0 - 13 July 2002 + + Added work around of JDK1.4 bug with NIO listener + + Allow filter init to access servlet context methods. + + close rather than disable stream after forward + + Fixed close problem with load balancer. + + Fixed ThreadPool bug when minThreads <= CPUs + + Keep notFoundContext out of context mapping lists. + + mod_jk FAQ + + Moved 3rd party jars to $JETTY_HOME/ext + + NCSARequestLog can log to stderr + + RD.forward changes getRequestURI. + + Stopped RD.includes closing response. + +jetty-4.1.D2 - 24 June 2002 + + Added AJP13 listener for apache integration. + + Allow comma separated cookies and headers + + Back out Don't chunk 30x empty responses. + + Better recycling of HttpRequests. + + Conditional header tested against welcome file not directory. + + Fixed ChunkableOutputStream close propagation + + Improved ThreadedServer stopping on bad networks + + Moved jmx classes from JettyExtra to here. + + Protect session.getAttributeNames from concurrent modifications. + + Set contextloader during webapplicationcontext.start + + Support trusted external authenticators. + + Use ThreadLocals to avoid unwrapping in Dispatcher. + +jetty-4.0.4 - 23 June 2002 + + Back out change: Don't chunk 30x empty responses. + + Conditional header tested against welcome file not directory. + + Improved ThreadedServer stopping on bad networks + +jetty-4.0.3 - 20 June 2002 + + Allow comma separated cookies and headers + + Allow session manager to be initialized when set. + + Better recycling of HttpRequests. + + Fixed close propagation of on-chunked output streams + + Fixed japanese locale + + Force security disassociation. + + Protect session.getAttributeNames from concurrent modifications. + + WebapplicationContext.start sets context loader + +jetty-4.1.D1 - 08 June 2002 + + Added simple buffer pool. + + Don't chunk 30x empty responses. + + Fixed /foo/../bar// bug in canonical path. + + Fixed "" contextPaths in Dispatcher. + + Merged ResourceBase and SecurityBase into HttpContext + + Recycle servlet requests and responses + + Removed race for the starting of session scavaging + + Reworked output buffering to keep constant sized buffers. + +jetty-4.0.2 - 06 June 2002 + + Added OptimizeIt plug + + Don't chunk 30x empty responses. + + Fixed /foo/../bar// bug in canonical path. + + Fixed "" contextPaths in Dispatcher. + + Fixed handler/context start order. + + Fixed web.dtd references. + + Removed race for the starting of session scavaging + +jetty-3.1.8 - 06 June 2002 + + Fixed /foo/../bar// bug in canonical path. + + Fixed no slash context redirection. + + Fixed singled threaded dynamic servlets + + Made SecurityConstraint.addRole() require authentication. + +jetty-4.1.D0 - 05 June 2002 + + Added OptimizeIt plug. + + Added TypeUtil to reduce Integer creation. + + BRAND NEW WebApplicationHandler & WebApplicationContext + + Experimental CLIENT-CERT Authenticator + + Fixed handler/context start order. + + Fixed web.dtd references. + + General clean up of the API for for MBean getters/setters. + + Removed the HttpMessage facade mechanism + + Restructured ResourceHandler into ResourceBase + + The 4.1 Series started looking for even more performance within the 2.3 + specification. + +jetty-4.0.1 - 22 May 2002 + + Fixed "null" return from getRealPath + + Fixed contextclassloader on ServletContextEvents. + + OutputStreamLogSink config improvements + + Support graceful stopping of context and server. + + Updated jasper to 16 May snapshot + +jetty-4.0.1RC2 - 14 May 2002 + + 3DES Keylength was being reported as 0. Now reports 168 bits. + + Added confidential and integral redirections to HttpListener + + Better error for jre1.3 with 1.4 classes + + Cleaned up RD query string regeneration. + + Fixed ServletResponse.reset() to resetBuffer. + + Implemented the run-as servlet tag. + +jetty-4.0.1RC1 - 29 April 2002 + + Avoid flushes during RequestDispatcher.includes + + Better handling if no realm configured. + + Expand ByteBuffer full limit with capacity. + + Fixed double filtering of welcome files. + + Fixed FORM authentication auth of login page bug. + + Fixed setTempDirectory creation bug + + Improved flushing of chunked responses + +jetty-4.0.1RC0 - 18 April 2002 + + AbstractSessionManager sets contextClassLoader for scavanging + + Added extract arg to addWebApplications + + DTD allows static "Get" and "Set" methods to be invoked. + + Extended facade interfaces to HttpResponse.sendError + + Fixed delayed response bug: Stopped HttpConnection consuming input from + timedout connection. + + Moved basic auth handling to HttpRequest + + Pass pathParams via welcome file forward for jsessionid + + Set thread context classloader for webapp load-on-startup inits + + Updated Jasper to CVS snapshot from Apr 18 18:50:59 BST 2002 + +jetty-4.0.0 - 22 March 2002 + + Added IPAddressHandler for IP restrictions + + Jetty.sh cygwin support + + Minor documentation updates. + + Updated contributors. + + Updated tutorial configure version + +jetty-4.0.RC3 - 20 March 2002 + + Changed html attribute order for mozilla quirk. + + ContextInitialized notified before load-on-startup servlets. + + Fixed ZZZ offset format to +/-HHMM + + JDBCUserRealm instantiates JDBC driver + + Suppress WriterOutputStream warning. + + Updated history + +jetty-4.0.RC2 - 12 March 2002 + + Added experimental nio SocketChannelListener + + Added skeleton load balancer + + Disabled the Password EXEC mechanism by default + + Dont try to extract directories + + Fixed column name in JDBCUserRealm + + Fixed empty referrer in NCSA log. + + Fixed security constraint problem with // + + Fixed version for String XmlConfigurations + + Removed redundant sessionID check. + + Remove last of the Class.forName calls. + + Security FAQ + +jetty-3.1.7 - 12 March 2002 + + Fixed security problem with constraints being bypassed with // in URLs + +jetty-4.0.RC1 - 06 March 2002 + + Added ContentEncodingHandler for compression. + + Call response.flushBuffer after service to flush wrappers. + + contextDestroyed event sent before destruction. + + Contributors list as an image to prevent SPAM! + + Empty suffix for temp directory. + + FileResource depends less on FilePermissions. + + Fixed filter vs forward bug. + + Fixed recursive DEBUG loop in Logging. + + Improved efficiency of quality list handling + + Minor changes to make HttpServer work on J2ME CVM + + Simplified filter API to chunkable streams + + Updated jetty.sh to always respect arguments. + + Warn if jdk 1.4 classes used on JVM <1.4 + + WebApplication will use ContextLoader even without WEB-INF directory. + + XmlParser is validating by default. use o.m.x.XmlParser.NotValidating + property to change. + +jetty-3.1.6 - 28 February 2002 + + Dispatcher.forward dispatches directly to ServletHolder to avoid premature + exception handling. + + Empty suffix for temp directory. + + Fixed HttpFields remove bug + + HttpResponse.sendError makes a better attempt at finding an error page. + + Implemented 2.3 clarifications to security constraint semantics PLEASE + REVIEW YOUR SECURITY CONSTRAINTS (see README). + + LineInput can handle any sized marks + + Set Listeners default scheme + +jetty-4.0.B2 - 25 February 2002 + + Accept jetty-web.xml or web-jetty.xml in WEB-INF + + Added LoggerLogSink to direct Jetty Logs to JDK1.4 Log. + + Added optional JDK 1.4 src tree + + Added org.mortbay.http.JDBCUserRealm + + Added String constructor to XmlConfiguration. + + Adjust servlet facades for welcome redirection + + Improved default jetty.xml + + Improve handling of unknown URL protocols. + + Init classloader for JspServlet + + Minor Jasper updates + + o.m.u.Frame uses JDK1.4 stack frame handling + + Simplified addWebApplication + + Slightly more agressive eating unused input from non persistent connection. + + Start ServletHandler as part of the FilterHandler start. + + User / mapping rather than /* for servlet requests to static content + +jetty-4.0.B1 - 13 February 2002 + + Added setClassLoader and moved getFileClassPath to HttpContext + + getRequestURI returns encoded path + + HttpConnection always eats unused bodies + + LineInput waits for LF after CF if seen CRLF before. + + Merged HttpMessage and Message + + Servlet request destined for static content returns paths as default servlet + + Suppress error only for IOExceptions not derivitives. + + Updated examples webapp from tomcat + + WriterOutputStream so JSPs can include static resources. + +jetty-4.0.B0 - 04 February 2002 + + Added AbstractSessionManager + + Added Array element to XMLConfiguration + + Added hack for compat tests in watchdog for old tomcat stuff + + Added index links to tutorial + + Allow listener schemes to be set. + + Common handling of TRACE + + Factor out RolloverFileOutputStream from OutputStreamLogSink + + Fixed HttpFields remove bug + + Handle special characters in resource file names better. + + HttpContext destroy + + Implemented 2.3 security constraint semantics PLEASE REVIEW YOUR SECURITY + CONSTRAINTS (see README). + + Reduce object count and add hash width to StringMap + + Release process builds JettyExtra + + Removed triggers from Code. + + Remove request logSink and replace with RequestLog using + RolloverFileOutputStream + + Renamed getHttpServers and added setAnonymous + + Stop and remove NotFound context for HttpServer + + Support Random Session IDs in HashSessionManager. + + Updated crimson to 1.1.3 + + Updated tutorial and FAQ + + Welcome file dispatch sets requestURI. + + Welcome files may be relative + +jetty-4.0.D4 - 14 January 2002 + + Added BlueRibbon campaign. + + Added isAuthenticated to UserPrincipal + + Extract WAR files to standard temp directory + + Fixed noaccess auth demo. + + FORM auth caches UserPrincipal + + Handle ServletRequestWrappers for Generic Servlets + + Improved handling of UnavailableException + + Improved HttpResponsse.sendError error page matching. + + Prevent output after forward + + RequestDispatcher uses cached resources for include + + URI uses UTF8 for % encodings. + +jetty-4.0.D3 - 31 December 2001 + + cookies with maxAge==0 expire on 1 jan 1970 + + Corrected name to HTTP_REFERER in CGI Servlet. + + DateCache handles misses better. + + Fixed cached filter wrapping. + + Fixed ContextLoader lib handling. + + Fixed getLocale again + + Fixed UrlEncoding for % + combination. + + Generalized temp file handling + + HttpFields uses DateCache more. + + Made Frame members private and fixed test harness + + Moved admin port to 8081 to avoid JBuilder + + Patch jasper to 20011229101000 + + Removed limits on mark in LineInput. + + setCookie always has equals + +jetty-3.1.5 - 11 December 2001 + + Allow POSTs to static resources. + + Branched at Jetty_3_1 + + cookies with maxage==0 expired 1 jan 1970 + + Fixed ChunableInputStream.resetStream bug. + + Fixed formatting of redirectURLs for NS4.08 + + Ignore IO errors when trying to persist connections. + + setCookie always has equals for cookie value + + stopJob/killStop in ThreadPool to improve stopping ThreadedServer on some + platforms. + +jetty-4.0.D2 - 02 December 2001 + + added addWebApplications auto discovery + + Allow POSTs to static resources. + + Better handling of charset in form encoding. + + Disabled last forwarding by setPath() + + Fixed ChunableInputStream.resetStream bug. + + Fixed formatting of redirect URLs. + + Ignore IO errors when trying to persist connections. + + Made the root context a webapplication. + + Moved demo docroot/servlets to demo directory + + New event model to decouple from beans container. + + Removed Demo.java (until updated). + + Removed ForwardHandler. + + Removed most of the old doco, which needs to be rewritten and added again. + + Removed Request set methods (will be replaced) + + Restructured for demo and test hierarchies + + stopJob/killStop in ThreadPool to improve stopping ThreadedServer on some + platforms. + +jetty-4.0.D1 - 14 November 2001 + + Added Context and Session Event Handling + + Added FilterHandler + + Added FilterHolder + + Changed HandlerContext to HttpContext + + Fixed bug with request dispatcher parameters + + Fixed ServletHandler with no servlets + + New ContextLoader implementation. + + New Dispatcher implementation + + Removed destroy methods + + Simplified MultiMap + + Simplified ServletHandler + +jetty-4.0.D0 - 06 November 2001 + + 1.2 JSP API + + 2.3 Servlet API + + Added examples webapp from tomcat4 + + Branched at Jetty_3_1 + + Branched from Jetty_3_1 == Jetty_3_1_4 + + Jasper from tomcat4 + + Start SessionManager abstraction. + +jetty-3.1.4 - 06 November 2001 + + Added RequestLogFormat to allow extensible request logs. + + Default PathMap separator changed to ":," + + Generate session unbind events on a context.stop() + + getRealPath accepts \ URI separator on platforms using \ file separator. + + HTAccessHandler made stricter on misconfiguration + + PathMap now ignores paths after ; or ? characters. + + Remove old stuff from contrib that had been moved to extra + + Support the ZZZ timezone offset format in DateCache + +jetty-3.1.3 - 26 October 2001 + + Allow a per context UserRealm instance. + + Correct dispatch to error pages with javax attributes set. + + Fixed binary files in CVS + + Fixed several problems with external role authentication. Role + authentication in JBoss was not working correctly and there were possible + object leaks. The fix required an API change to UserPrinciple and UserRealm. + + Fixed Virtual hosts to case insensitive. + + Fix security problem with trailing special characters. Trailing %00 enabled + JSP source to be viewed or other servlets to be bypassed. + + Improved FORM auth handling of role failure. + + Improved Jasper debug output. + + Improved ThreadedServer timeout defaults + + PathMap spec separator changed from ',' to ':'. May be set with + org.mortbay.http.PathMap.separators system property. + + Upgraded JSSE to 1.0.2 + +jetty-3.1.2 - 13 October 2001 + + Added run target to ant + + Added ServletHandler.sessionCount() + + Added short delay to shutdown hook for JVM bug. + + Changed 304 responses for Opera browser. + + Changed JSESSIONID to jsessionid + + Changed unsatisfiable range warnings to debug. + + Fixed attr handling in XmlParser.toString + + Fixed authentication role handling in FORM auth. + + Fixed double entry on PathMap.getMatches + + Fixed FORM Authentication username. + + Fixed NotFoundHandler handling of unknown methods + + Fixed request log date formatting + + Fixed servlet handling of non session url params. + + FORM authentication passes query params. + + Further improvements in handling of shutdown. + + Log OK state after thread low warnings. + +jetty-3.1.1 - 27 September 2001 + + Correctly ignore auth-constraint descriptions. + + Fixed jar manifest format - patched 28 Sep 2001 + + Fixed ServletRequest.getLocale(). + + Handle requestdispatcher during init. + + Reduced verbosity of bad URL errors from IIS virus attacks + + Removed incorrect warning for WEB-INF/lib jar files. + + Removed JDK 1.3 dependancy + + Use lowercase tags in html package to be XHTML-like. + +jetty-3.1.0 - 21 September 2001 + + Added HandlerContext.registerHost + + Added long overdue Tutorial documentation. + + Fix .. handling in URI + + Fix flush on stop bug in logs. + + Fix FORM authentication on exact patterns + + Fix Jetty.bat for spaces. + + Fix param reading on CGI servlet + + Fix REFFERER in CGI + + Fix ResourceHandler cache invalidate. + + Fix reuse of Resource + + Fix ServletResponse.setLocale() + + Improved closing of listeners. + + Improved some other documentation. + + New simplified jetty.bat + + Optimized List creation + + Removed win32 service.exe + +jetty-3.1.rc9 - 02 September 2001 + + Added bin/orgPackage.sh script to change package names. + + Added handlerContext.setClassPaths + + Added lowResourcePersistTimeMs for more graceful degradation when we run out + of threads. + + Added support for Nonblocking listener. + + Changed to org.mortbay domain names. + + Fixed bug with non cookie sessions. + + Fixed handling of rel form authentication URLs + + Format cookies in HttpFields. + + Form auth login and error pages relative to context path. + + Patched Jasper to 3.2.3. + +jetty-3.1.rc8 - 22 August 2001 + + Added HttpServer statistics + + Allow contextpaths without leading / + + Allow per context log files. + + Buffer allocation + + Don't add notfound context. + + Fixed handling of default mime types + + ISO8859 conversion + + Many major and minor optimizations: + + OutputStreamLogSink replaces WriterLogSink + + Removed race from dynamic servlet initialization. + + Separation of URL params in HttpHandler API. + + StringMap + + Support WEB-INF/web-jetty.xml configuration extension for webapps + + Updated sponsors page + + URI canonicalPath + + URI pathAdd + +jetty-3.1.rc7 - 09 August 2001 + + Added doco for Linux port redirection. + + Added FORM authentication. + + Added method handling to HTAccessHandler. + + Added shutdown hooks to Jetty.Server to trap Ctl-C + + Added UML diagrams to Jetty architecture documentation. + + Added utility methods to ServletHandler for wrapping req/res pairs. + + Don't persist connections if low on threads. + + Dump Servlet displays cert chains + + Fix bug in sendRedirect for HTTP/1.1 + + Fixed bug with session ID generation. + + Fixed redirect handling by the CGI Servlet. + + Fixed request.getPort for redirections from 80 + + Optimized HttpField handling to reduce object creatiyon. + + Remove old context path specs + + ServletRequest SSL attributes in line with 2.2 and 2.3 specs. + + ServletResponse.sendRedirect puts URLs into absolute format. + + Use Enumerations to reduce conversions for servlet API. + +jetty-3.1.rc6 - 10 July 2001 + + Added Client authentication to the JsseListener + + Added debug and logging config example to demo.xml + + Added Get element to the XmlConfiguration class. + + Added getResource to HandleContext. + + Added Static calls to the XmlConfiguration class. + + Avoid script vulnerability in error pages. + + Cleaned up destroy handling of listeners and contexts. + + Cleaned up Win32 Service server creation. + + Close persistent HTTP/1.0 connections on missing Content-Length + + Fixed a problem with Netscape and the acrobat plugin. + + Fixed bug in B64Code. Optimised B64Code. + + Fixed XmlParser to handle xerces1.3 OK + + Improved debug output for IOExceptions. + + Improved SSL debugging information. + + KeyPairTool can now load cert chains. + + KeyPairTool is more robust to provider setup. + + Moved gimp image files to Jetty3Extra + + Moved mime types and encodings to property bundles. + + Removed getConfiguration from LifeCycleThread to avoid JMX clash. + + RequestDispatch.forward() uses normal HandlerContext.handle() path if + possible. + + Updated to JSSE-1.0.2, giving full strength crypto. + + Use exec for jetty.sh run + + WebApps initialize resourceBase before start. + + Win32 Service uses Jetty.Server instead of HttpServer. + +jetty-3.1.rc5 - 01 May 2001 + + Added build target for mini.jetty.jar - see README. + + Added HTaccessHandler to authenitcate against apache .htaccess files. + + Added query param handling to ForwardHandler + + Added ServletHandler().setUsingCookies(). + + Added UnixCrypt support to c.m.U.Password + + Fixed EOF handling in MultiPartRequest. + + Fixed forwarding to null pathInfo requests. + + Fixed handling of empty responses at header commit. + + Fixed handling of multiple cookies. + + Fixed jetty.bat classpath problems. + + Fixed ResourceHandler handling of ;JSESSIONID + + Fixed sync of ThreadPool idleSet. + + Major restructing of packages to separate servlet dependancies. c.m.XML - + moved XML dependant classes from c.m.Util c.m.HTTP - No servlet or XML + dependant classes: c.m.Jetty.Servlet - moved from c.m.HTTP.Handler.Servlet + c.m.Servlet - received some servlet dependant classes from HTTP. + + Optimized canonical path calculations. + + Request log contains bytes actually returned. + + Warn and close connections if content-length is incorrectly set. + +jetty-3.0.6 - 26 April 2001 + + Fixed EOF handlding in MultiPartRequest. + + Fixed forwarding to null pathInfo requests. + + Fixed handling of empty responses at header commit. + + Fixed ResourceHandler handling of ;JSESSIONID + + Fixed sync of ThreadPool idleSet. + + Load-on-startup the JspServlet so that precompiled servlets work. + +jetty-3.1.rc4 - 14 April 2001 + + Added idle thread getter to ThreadPool. + + Include full versions of JAXP and Crimson + + Load-on-startup the JspServlet so that precompiled servlets work. + + Removed stray debug println from the Frame class. + +jetty-3.0.5 - 14 April 2001 + + Branched from 3.1 trunk to fix major errors + + Created better random session ID + + Don't chunk if content length is known. + + fixed getLocales handling of quality params + + Fixed LineInput bug EOF + + Fixed session invalidation unbind notification to conform with spec + + Improved flush ordering for forwarded requests. + + Load-on-startup the JspServlet so that precompiled servlets work. + + Resource handler strips URL params like JSESSION. + + Turned off range handling by default until bugs resolved + +jetty-3.1.rc3 - 09 April 2001 + + Added ContentHandler Observer to XmlParser. + + Allow webapp XmlParser to be observed for ejb-ref tags etc. + + Cleaned up handling of exceptions thrown by servlets. + + Created better random session ID + + Frame handles more JIT stacks. + + Handle zero length POSTs + + Implemented multi-part ranges so that acrobat is happy. + + Improved flush ordering for forwarded requests. + + Improved ThreadPool stop handling + + Simplified multipart response class. + + Start session scavenger if needed. + +jetty-3.1.rc2 - 30 March 2001 + + Added MultiException to throw multiple nested exceptions. + + added options to turn off ranges and chunking to support acrobat requests. + + fixed getLocales handling of quality params + + fixed getParameter(name) handling for multiple values. + + Improved handling of Primitive classes in XmlConfig + + Improved logging of nested exceptions. + + Lifecycle.start() may throw Exception + + Only one instance of default MIME map. + + Renamed getConnection to getHttpConnection + + Use reference JAXP1.1 for XML parsing.y + + Version 1.1 of configuration dtd supports New objects. + +jetty-3.1.rc1 - 18 March 2001 + + Added Jetty documentation pages from JettyWiki + + Cleaned up build.xml script + + Fixed problem with ServletContext.getContext(uri) + + Minimal handling of Servlet.log before initialization. + + Moved JMX and SASL handling to Jetty3Extra release + + Resource handler strips URL params like JSESSION. + + Various SSL cleanups + +jetty-3.1.rc0 - 23 February 2001 + + Added JMX management framework. + + Changed getter and setter methods that did not conform to beans API. + + Dynamic servlets may be restricted to Context classloader. + + Fixed init order for unnamed servlets. + + Fixed session invalidation unbind notification to conform with spec + + Improved handling of primitives in utilities. + + Improved InetAddrPort and ThreadedServer to reduce DNS lookups. + + Reoganized packages to allowed sealed Jars + + Socket made available via HttpConnection. + + Use Thread context classloader as default context loader parent. + +jetty-3.0.4 - 23 February 2001 + + Fixed LineInput bug with split CRLF. + +jetty-3.0.3 - 03 February 2001 + + Allow Log to be disabled before initialization. + + Fixed handling of directories without trailing / + + Fixed pipelined request buffer bug. + + Handle empty form content without exception. + + Implemented web.xml servlet mapping to a JSP + + Included new Jetty Logo + +jetty-3.0.2 - 13 January 2001 + + Added etc/jetty.policy as example policy file. + + Allow '+' in path portion of a URL. + + Context specific security permissions. + + Greatly improved buffering in ChunkableOutputStream + + Handle unknown status reasons in HttpResponse + + Ignore included response updates rather than IllegalStateException + + Improved HTML.Block efficiency + + Improved jetty.bat + + Improved jetty.sh + + Padded error bodies for IE bug. + + Removed classloading stats which were causing circular class loading + problems. + + Replaced ResourceHandler FIFO cache with LRU cache. + + Restructured demo site pages. + + Try ISO8859_1 encoding if can't find ISO-8859-1 + +jetty-3.0.1 - 20 December 2000 + + Fixed value unbind notification for session invalidation. + + Removed double null check possibility from ServletHolder + +jetty-3.0.0 - 17 December 2000 + + Fixed rel path handling in default configurations. + + Fixed rollover bug in WriterLogSink + + Fixed taglib parsing + + Fixed WriterLogSink init bug + + Improved dtd resolution in XML parser. + + Improved jetty.sh logging + + Optional extract war files. + + Use inner class to avoid double null check sync problems + +jetty-3.0.0.rc8 - 13 December 2000 + + Added ForwardHandler + + Change PathMap handling of /* to give precedence over suffix mapping. + + Default log options changed if in debug mode. + + Forward to welcome pages rather than redirect. + + getSecurityHandler creates handler at position 0. + + Improved exit admin handling + + Jetty.Server catches init exceptions per server + + Mapped *.jsp,*.jsP,*.jSp,*.jSP,*.Jsp,*.JsP,*.JSp,*.JSP + + Optional alias checking added to FileResource. Turned on by default on all + platforms without the "/" file separator. + + Patched jasper to tomcat 3.2.1 + + Protected META-INF as well as WEB-INF in web applications. + + Removed security constraint on demo admin server. + + Removed some unused variables. + + Removed special characters from source. + + SysV unix init script + + Tidied handling of ".", ".." and "//" in resource paths + +jetty-3.0.0.rc7 - 02 December 2000 + + Added Com.mortbay.HTTP.Handler.Servlet.Context.LogSink attribute to Servlet + Context. If set, it is used in preference to the system log. + + Added NotFoundServlet + + Added range handling to ResourceHandler. + + Allow dynamic servlets to be served from / + + Auto add a NotFoundHandler if needed. + + CGI servlet handles not found better. + + Changed log options to less verbose defaults. + + Conditionals apply to puts, dels and moves in ResourceHandler. + + Depreciated RollOverLogSink and moved functionality to an improved + WriterLogSink. + + Don't set MIME-Version in response. + + Double null lock checks use ThreadPool.__nullLockChecks. + + Extended security constraints (see README and WebApp Demo). + + Fixed security problem with lowercase WEB-INF uris on windows. + + Handle multiple inits of same servlet class. + + PUT, MOVE disabled in WebApplication unless defaults file is passed. + + Set the AcceptRanges header. + + Set thread context classloader during handler start/stop calls. + + Split Debug servlet out of Admin Servlet. + + ThreadedServer.forceStop() now makes a connection to itself to handle + non-premptive close. + + URIs accept all characters < 0xff. + + WEB-INF protected by NotFoundServlet rather than security constraint. + +jetty-3.0.0.rc6 - 20 November 2000 + + Added ServletWriter that can be disabled. + + Added Win32 service support + + Admin servlet uses unique links for IE. + + Allow HttpMessage state to be manipulated. + + Allow load-on-startup with no content. + + Allow multiple set cookies. + + Corrected a few of the many spelling mistakes. + + don't include classes in release. + + Don't set connection:close for normal HTTP/1.0 responses. + + Don't start HttpServer log sink on add. + + Fixed RollOverFileLogSink bug with extra log files. + + Implemented customizable error pages. + + Implemented resource aliases in HandlerContext - used by Servlet Context + + Improved Log defaults + + Javadoc improvements. + + Map tablib configuration to resource aliases. + + Prevent reloading dynamic servlets at different paths. + + Put extra server and servlet info in header. + + Reduced risk of double null check sync problem. + + RequestDispatcher.forward() only resets buffer, not headers. + + RequestDispatcher new queries params replace old. + + Resource gets systemresources from it's own classloader. + + Servlet init order may be negative. + + Session cookies are given context path + + Sessions try version 1 cookies in set-cookie2 header. + + Simple stats in ContextLoader. + + Version details in header can be suppressed with System property + java.com.mortbay.HTTP.Version.paranoid + + Warn for missing WEB-INF or web.xml + + Webapps serve dynamics servlets by default. + +jetty-3.0.0.rc5 - 12 November 2000 + + Added debug form to Admin servlet. + + Allow null cookie values + + Avoid jprobe race warnings in DateCache + + Default writer encoding set by mime type if not explicitly set. + + Implemented servlet load ordering. + + Many javadoc cleanups. + + Merged DynamicHandler into ServletHandler. + + Moved JSP classpath hack to ServletHolder + + Pass flush through ServletOut + + Relax webapp rules, accept no web.xml or no WEB-INF + + Removed Makefile build system. + + RequestDispatcher can dispatch static resources. + + Servlet exceptions cause 503 unavailable rather than 500 server error + +jetty-2.4.9 - 12 November 2000 + + HtmlFilter handles non default encodings + + HttpListener default max idle time = 20s + + HttpListener ignore InterruptedIOExceptions + + HttpRequest.write uses ISO8859_1 encoding. + + Writing HttpRequests encodes path + +jetty-3.0.0.rc4 - 06 November 2000 + + Fixed mime type mapping bug introduced in RC3 + + Fixed mis-synchronization in ThreadPool.stop() + + Ignore more IOExceptions (still visible with debug). + + Provide default JettyIndex.properties + +jetty-3.0.0.rc3 - 05 November 2000 + + Added bin/jetty.sh run script. + + Added context class path dynamic servlet demo + + Added gz tgz tar.gz .z mime mappings. + + Added HandlerContext.setHttpServerAccess for trusted contexts. + + Changed ThreadPool.stop for IBM 1.3 JVM + + Fixed default mimemap initialization bug + + Further clean up of the connection close actions + + Handle mime suffixes containing dots. + + Implemented mime mapping in webapplications. + + Moved unused classes from com.mortbay.Util to com.mortbay.Tools in new + distribution package. + + Optimized persistent connections by recycling objects + + Prevent servlet setAttribute calls to protected context attributes. + + Removed redundant context attributes. + + Set MaxReadTimeMs in all examples + + Set the thread context class loader in HandlerContext.handle + + Strip ./ from relative resources. + + upgraded build.xml to ant v1.2 + +jetty-3.0.0.rc2 - 29 October 2000 + + Accept HTTP/1. as HTTP/1.0 (for netscape bug). + + Accept public DTD for XmlConfiguration (old style still supported). + + Cleaned up non persistent connection close. + + ErlEncoding treats params without values as empty rather than null. + + Fixed thread name problem in ThreadPool + + Pass file based classpath to JspServlet (see README). + + Prevented multiple init of ServletHolder + + Replaced ISO-8859-1 literals with StringUtil static + +jetty-3.0.0.rc1 - 22 October 2000 + + Added CGI to demo + + Added HashUserRealm and cleaned up security constraints + + Added Multipart request and response classes from Jetty2 + + Added simple admin servlet. + + All attributes in javax. java. and com.mortbay. name spaces to be set. + + Cleaned up exception handling. + + Initialize JSP with classloader. + + Moved and simplified ServletLoader to ContextLoader. + + Partial handling of 0.9 requests. + + removed Thread.destroy() calls. + +jetty-2.4.8 - 23 October 2000 + + Fixed bug with 304 replies with bodies. + + Fixed closing socket problem + + Improved win32 make files. + +jetty-3.0.B05 - 18 October 2000 + + Added default webapp servlet mapping /servlet/name/* + + Cleaned up response committing and flushing + + Fixed JarFileResource to handle jar files without directories. + + Handler RFC2109 cookies (like any browser handles them!) + + Implemented security-role-ref for servlets + + Implemented war file support + + improved ant documentation. + + Improved default log format for clarity. + + Improved null returns to get almost clean watchdog test. + + Improved path spec interpretation by looking at 2.3 spec + + Java2 style classloading + + Made test harnesses work with ant. + + Protected servletConfig from downcast security problems + + Removed most deprecation warnings + + Separated context attributes and initParams. + +jetty-3.0.B04 - 12 October 2000 + + Added modified version of JasperB3.2 for JSP + + Added webdefault.xml for web applications. + + Do not try multiple servlets for a request. + + Filthy hack to teach jasper JspServer Jetty classpath + + Fixed problem with session ID in paths + + Implemented Context.getContext(uri) + + Merged and renamed third party jars. + + Moved FileBase to docroot + + Redirect to index files, so index.jsp works. + + Restricted context mapping to simple model for servlets. + +jetty-3.0.B03 - 09 October 2000 + + Added append mode in RolloverFileLogSink + + Added release script + + Catch stop and destroy exceptions in HttpServer.stop() + + Expanded import package.*; lines + + Expanded leading tabs to spaces + + Handle ignorable spaces in WebApplication + + Handle ignorable spaces in XmlConfiguration + + Implemented request dispatching. + + Improved Context to Handler contract. + + Improved handler toString + + Improved Log rollover. + + Made LogSink a Lifecycle interface + + Parse but not handler startup ordering in web applications. + + Pass object to LogSink + + Redirect context only paths. + + Redo dynamic servlets handling + + Remove 411 checks as IE breaks this rule after redirect. + + Removed last remnants JDK 1.1 support + + Send request log via a LogSink + + Simplified path translation and real path calculation. + + Warn about explicit sets of WebApplication + +jetty-2.4.7 - 06 October 2000 + + Added encode methods to URI + + Allow Objects to be passed to LogSink + + fixes to SSL doco + + Improved win32 build + + Set content length on errors for keep alive. + + Support key and keystore passwords + + Various improvements to ServletDispatch, PropertyTree and associated + classes. + +jetty-3.0.B02 - 24 August 2000 + + Added CGI servlet + + Fixed bug in TestRFC2616 + + Fixed HTTP/1.0 input close bug + + Fixed LineInput bug with SSL giving CR pause LF. + + Improved ThreadedServer stop and destroy + + Use resources in WebApplication + +jetty-3.0.B01 - 21 August 2000 + + Implemented more webapp configuration + + Partial implementation of webapp securitycontraints + + SSL implemented with JsseListener + + Switched to the aelfred XML parser from microstar, which is only partially + validating, but small and lightweight + +jetty-2.4.6 - 16 August 2000 + + Added passive mode methods to FTP + + com.mortbay.Util.KeyPairTool added to handle openSSL SSL keys. + + JsseListener & SunJsseListener added and documented + + Minor changes to compile with jikes. + + Turn Linger off before closing sockets, to allow restart. + +jetty-3.0.A99 - 10 August 2000 + + Added Resource abstraction + + Added Xmlconfiguration utility + + Implemented jetty.xml configuration + + Make it compile cleanly with jikes. + + Re-added commented out imports for JDK-1.1 compile + + Removed FileBase. Now use ResourceBase instead + + Replaced FileHandler with ResourceHandler + + ServletLoader simplied and uses ResourcePath + + Use SAX XML parsing instead of DOM for space saving. + +jetty-3.0.A98 - 20 July 2000 + + Allow HttpRequest.toString() handles bad requests. + + Fixed constructor to RolloverFileLogSink + + Implemented Jetty demos and Site as Web Application. + + Implemented WebApplicationContext + + Improved synchronization on LogSink + + ServletRequest.getServerPort() returns 80 rather than 0 + + Switched to JDK1.2 only + +jetty-3.0.A97 - 13 July 2000 + + Added error handling to LifeCycleThread + + Added WML mappings + + Better tuned SocketListener parameters + + Fixed makefiles for BSD ls + + Fixed persistent commits with no content (eg redirect+keep-alive). + + Formatted version in server info string. + + implemented removeAttribute on requests + + Implemented servlet getLocale(s). + + Implemented servlet isSecure(). + + Less verbose debug + + Protect setContentLength from a late set in default servlet HEAD handling. + + Started RequestDispatcher implementation. + + Tempory request log implementation + +jetty-2.4.5 - 09 July 2000 + + Added HtmlExpireFilter and removed response cache revention from HtmlFilter. + + Don't mark a session invalid until after values unbound. + + Fixed transaction handling in JDBC wrappers + + Formatted version in server info. + +jetty-3.0.A96 - 27 June 2000 + + Fixed bug with HTTP/1.1 Head reqests to servlets. + + Supressed un-needed chunking EOF indicators. + +jetty-3.0.A95 - 24 June 2000 + + Fixed getServletPath for default "/" + + Handle spaces in file names in FileHandler. + +jetty-3.0.A94 - 19 June 2000 + + Added HandlerContext to allow grouping of handlers into units with the same + file, resource and class configurations. + + Cleaned up commit() and added complete() to HttpResponse + + Implemented Sessions. + + PathMap exact matches can terminate with ; or # for URL sessions and + targets. + + Updated license to clarify that commercial usage IS OK! + +jetty-3.0.A93 - 14 June 2000 + + Lots of changes and probably unstable + + Major rethink! Moved to 2.2 servlet API + +jetty-3.0.A92 - 07 June 2000 + + Added HTML classes to jar + + Fixed redirection bug in FileHandler + +jetty-2.4.4 - 03 June 2000 + + Added build-win32.mak + + Added HTML.Composite.replace + + Added RolloverFileLogSink + + Added uk.org.gosnell.Servlets.CgiServlet to contrib + + BasicAuthHandler uses getResourcePath so it can be used behind request + dispatching + + FileHandler implements IfModifiedSince on index files. + + HttpRequest.setRequestPath does not null pathInfo. + + Improved LogSink configuration + + Many debug call optimizations + + Support System.property expansions in PropertyTrees. + +jetty-3.0.A91 - 03 June 2000 + + Abstracted ServletHandler + + Added HTML classes from Jetty2 + + Implemented realPath and getResource methods for servlets. + + Improved LogSink mechanism + + Simplified class loading + + Simplified HttpServer configuration methods and arguments + +jetty-3.0.A9 - 07 May 2000 + + File handler checks modified headers on directory indexes. + + Fixed double chunking bug in SocketListener. + + Improvided finally handling of output end game. + + ServletLoader tries unix then platform separator for zip separator. + +jetty-3.0.A8 - 04 May 2000 + + addCookie takes an int maxAge rather than a expires date. + + Added LogSink extensible log architecture. + + Added Tenlet class for reverse telnet. + + Code.ignore only outputs when debug is verbose. + + Moved Sevlet2_1 handler to com.mortbay.Servlet2_1 + + Servlet2_1 class loading re-acrchitected. See README. + +jetty-2.4.3 - 04 May 2000 + + Allow CRLF in UrlEncoded + + Pass Cookies with 0 max age to browser. + +jetty-2.4.2 - 23 April 2000 + + Added GNUJSP to JettyServer.prp file. + + Added LogSink and FileLogSink classes to allow extensible Log handling. + + Handle nested RequestDispatcher includes. + + Modified GNUJSP to prevent close in nested requests. + +jetty-3.0.A7 - 15 April 2000 + + Added InetGateway to help debug IE5 problems + + added removeValue method to MultiMap + + fixed flush problem with chunked output for IE5 + + Include java 1.2 source hierarchy + + removed excess ';' from source + +jetty-2.4.1 - 09 April 2000 + + Fixed bug in HtmlFilter for tags split between writes. + + Removed debug println from ServletHolder. + + Set encoding before exception in FileHandler. + +jetty-3.0.A6 - 09 April 2000 + + added bin/useJava2Collections to convert to JDK1.2 + + Dates forced to use US locale + + Improved portability of Frame and Debug. + + Integrated skeleton 2.1 Servlet container + + Removed Converter utilities and InetGateway. + +jetty-2.4.0 - 24 March 2000 + + Absolute URIs are returned by getRequestURI (if sent by browser). + + Added doc directory with a small start + + Added per servlet resourceBase configuration. + + Added VirtualHostHandler for virtual host handling + + Fixed bug with RequestDispatcher.include() + + Fixed caste problem in UrlEncoded + + Fixed null pointer in ThreadedServer with stopAll + + Form parameters only decoded for POSTs + + Implemented full handling of cookie max age. + + Improved parsing of stack trace in debug mode. + + Moved SetUID native code to contrib hierarchy + + RequestDispatcher handles URI parameters + + Upgraded to gnujsp 1.0.0 + +jetty-2.3.5 - 25 January 2000 + + Added configuration option to turn off Keep-Alive in HTTP/1.0 + + Added contrib/com/kiwiconsulting/jetty JSSE SSL adaptor to release. + + Allow configured servlets to be auto reloaded. + + Allow properties to be configured for dynamic servlets. + + Fixed expires bug in Cookies + + Fixed nasty bug with HTTP/1.1 redirects. + + Force locale of date formats to US. + + ProxyHandler sends content for POSTs etc. + +jetty-2.3.4 - 18 January 2000 + + Cookie map keyed on domain as well as name and path. + + DictionaryConverter handles null values. + + Fixed IllegalStateException handling in DefaultExceptionHandler + + Fixed interaction with resourcePaths and proxy demo. + + Improved HtmlFilter.activate header modifications. + + include from linux rather than genunix for native builds + + MethodTag.invoke() is now public. + + Servlet properties allow objects to be stored. + + URI decodes applies URL decoding to the path. + +jetty-3.0.A5 - 19 October 1999 + + Do our own URL string encoding with 8859-1 + + Replaced LF wait in LineInput with state boolean. + + Use char array in UrlEncoded.decode + + Use ISO8859_1 instead of UTF8 for headers etc. + +jetty-2.3.3 - 19 October 1999 + + Do our own URL encoding with ISO-8859-1 + + HTTP.HTML.EmbedUrl uses contents encoding. + + Replaced UTF8 encoding with ISO-8859-1 for headers. + + Use UrlEncoded for form parameters. + +jetty-2.3.2 - 17 October 1999 + + Fixed getReader bug with HttpRequest. + + Updated UrlEncoded with Jetty3 version. + +jetty-3.0.A4 - 16 October 1999 + + Added LF wait after CR to LineInput. + + Basic Authentication Handler. + + Request attributes + + UTF8 in UrlDecoded.decodeString. + +jetty-2.3.1 - 14 October 1999 + + Added assert with no message to Code + + Added Oracle DB adapter + + Changed demo servlets to use writers in preference to outputstreams + + Fixed GNUJSP 1.0 resource bug. + + Force UTF8 for FTP commands + + Force UTF8 for HTML + + HTTP/1.0 Keep-Alive (about time!). + + NullHandler/Server default name.name.PROPERTIES to load + prefix/name.name.properties + + Prevented thread churn on idle server. + + ThreadedServer calls setSoTimeout(_maxThreadIdleMs) on accepted sockets. + Idle reads will timeout. + + Use UTF8 in HTTP headers + +jetty-3.0.A3 - 14 October 1999 + + Added LifeCycle interface to Utils implemented by ThreadPool, + ThreadedServer, HttpListener & HttpHandler + + Added service method to HttpConnection for specialization. + + MaxReadTimeMs added to ThreadedServer. + + StartAll, stopAll and destroyAll methods added to HttpServer. + +jetty-3.0.A2 - 13 October 1999 + + Added cookie support and demo. + + Cleaned up Util TestHarness. + + Fixed LineInput problem with repeated CRs + + HEAD handling. + + HTTP/1.0 Keep-alive (about time!) + + NotFound Handler + + OPTION * Handling. + + Prevent entity content for responses 100-199,203,304 + + Reduced flushing on writing response. + + TRACE handling. + + UTF8 handling on raw output stream. + + Virtual Hosts. + +jetty-3.0.A1 - 12 October 1999 + + Added HttpHandler interface with start/stop/destroy lifecycle + + Added MultiMap for common handling of multiple valued parameters. + + Added parameters to HttpRequest + + Added PathMap implementing mapping as defined in the 2.2 API specification + (ie. /exact, /prefix/*, *.extention & default ). + + Implemented simple extension architecture in HttpServer. + + LineInput uses own buffering and uses character encodings. + + Quick port of FileHandler + + Setup demo pages. + + Updated HttpListener is start/stop/destroy lifecycle. + +jetty-3.0.A0 - 09 October 1999 + + Added generalized HTTP Connection. + + Added support for servlet 2.2 outbut buffer control. + + Added support for transfer and content encoding filters. + + Cleaned up chunking code to use LineInput and reduce buffering. + + Cleanup and abstraction of ThreadPool. + + Cleanup of HttpRequest and decoupled from Servlet API + + Cleanup of HttpResponse and decoupled from Servlet API + + Cleanup of LineInput, using 1.2 Collections. + + Cleanup of URI, using 1.2 Collections. + + Cleanup of UrlEncoded, using 1.2 Collections. + + Created RFC2616 test harness. + + Extended URI to handle absolute URLs + + Generalized notification of outputStream events. + + gzip and deflate request transfer encodings + + HttpExceptions now produce error pages with specific detail of the + exception. + + HttpMessage supports chunked trailers. + + HttpMessage supports message states. + + Moved com.mortbay.Base classes to com.mortbay.Util + + Moved HttpInput/OutputStream to ChunkableInput/OutputStream. + + Split HttpHeader into HttpFields and HttpMessage. + + Started fresh repository in CVS + + TE field coding and trailer handler + + ThreadedServer based on ThreadPool. + +jetty-2.3.0 - 05 October 1999 + + Added SetUID class with native Unix call to set the effective User ID. + + FTP closes files after put/get. + + FTP uses InetAddress of command socket for data socket. + +jetty-2.3.0A - 22 September 1999 + + Added "Powered by Jetty" button. + + Added BuildJetty.java file. + + Added GNUJSP 1.0 for the JSP 1.0 API. + + Expanded tabs to spaces in source. + + Made session IDs less predictable and removed race. + + ServerContext available to HtmlFilters via context param + + Use javax.servlet classes from JWSDK1.0 + +jetty-2.2.8 - 15 September 1999 + + Added disableLog() to turn off logging. + + Allow default table attributes to be overriden. + + Fixed bug in Element.attribute with empty string values. + + Improved quoting in HTML element values + + Made translation of getRequestURI() optional. + + Removed recursion from TranslationHandler + +jetty-2.2.7 - 09 September 1999 + + Added default row, head and cell elements to Table. + + Added GzipFilter for content encoding. + + FileHandler passes POST request through if the file does not exist. + + Reverted semantics of getRequestURI() to return untranslated URI. + +jetty-2.2.6 - 05 September 1999 + + Added destroy() method on all HttpHandlers. + + Added ServletRunnerHandler to the contrib directories. + + Allow the handling of getPathTranslated to be configured in ServletHandler. + + class StyleLink added. + + Cookies always available from getCookies. + + Cookies parameter renamed to CookiesAsParameters + + cssClass, cssID and style methods added to element. + + FileHandler does not server files ending in '/' + + Fixed Cookie max age order of magnitude bug. + + HttpRequest.getSession() always returns a session as per the latest API + spec. + + Ignore duplicate single valued headers, rather than reply with bad request, + as IE4 breaks the rules. + + media added to Style + + New implementation of ThreadPool, avoids a thread leak problem. + + Removed JRUN options from ServletHandler configuration. + + ServletHandler.destroy destroys all servlets. + + SPAN added to Block + + Updated HTML package to better support CSS: + +jetty-2.2.5 - 19 August 1999 + + Always close connection after a bad request. + + Better default handling of ServletExceptions + + Close loaded class files so Win32 can overwrite them before GC (what a silly + file system!). + + Don't override the cookie as parameter option. + + Fixed bug with closing connections in ThreadedServer + + Improved error messages from Jetty.Server. + + Limited growth in MultiPartResponse boundary. + + Made start and stop non final in ThreadedServer + + Set Expires header in HtmlFilter. + +jetty-2.2.4 - 02 August 1999 + + Better help on Jetty.Server + + Fixed bugs in HtmlFilter parser and added TestHarness. + + HtmlFilter blanks IfModifiedSince headers on construction + + HttpRequests may be passed to HttpFilter constructors. + + Improved cfg RCS script. + + ThreadedServer can use subclasses of Thread. + +jetty-2.2.3 - 27 July 1999 + + Added stop call to HttpServer, used by Exit Servlet. + + FileHandler defaults to allowing directory access. + + Fixed parser bug in HtmlFilter + + Improved performance of com.mortbay.HTML.Heading + + JDBC tests modified to use cloudscape as DB. + + Made setInitialize public in ServletHolder + + Simplified JDBC connection handling so that it works with Java1.2 - albeit + less efficiently. + +jetty-2.2.2 - 22 July 1999 + + File handler passes through not allowed options for non existant files. + + Fixed bug in com.mortbay.Util.IO with thread routines. + + Fixed bug in HtmlFilter that prevented single char buffers from being + written. + + Fixed bug with CLASSPATH in FileJarServletLoader after attempt to load from + a jar. + + Implemented getResourceAsStream in FileJarServletLoader + + Improved com.mortbay.Base.Log handling of different JVMs + + Minor fixes to README + + Moved more test harnesses out of classes. + + NotFoundHandler can repond with SC_METHOD_NOT_ALLOWED. + +jetty-2.2.1 - 18 July 1999 + + Added optional resourceBase property to HttpConfiguration. This is used as a + URL prefix in the getResource API and was suggested by the JSERV and Tomcat + implementors. + + Added TerseExceptionHandler + + Comma separate header fields. + + Decoupled ExceptionHandler configuration from Handler stacks. Old config + style will produce warning and Default behavior. See new config file format + for changes. + + Handle continuation lines in HttpHeader. + + HtmlFilter resets last-modified and content-length headers. + + Ignore IOException in ThreadedServer.run() when closing. + + Implemented com.mortbay.Util.IO as a ThreadPool + + Less verbose debug in PropertyTree + + Limit maximum line length in HttpInputStream. + + Protect against duplicate single valued headers. + + Response with SC_BAD_REQUEST rather than close in more circumstances + +jetty-2.2.0 - 01 July 1999 + + Added Protekt SSL HttpListener + + Exit servlet improved (a little). + + Fixed some of the javadoc formatting. + + Improved feature description page. + + Moved GNUJSP and Protekt listener to a contrib hierarchy. + + ThreadedServer.stop() closes socket before interrupting threads. + +jetty-2.2.Beta4 - 29 June 1999 + + Added comments to configuration files. + + Added getGlobalProperty to Jetty.Server and used this to configure default + page type. + + Added JettyMinimalDemo.prp as an example of an abbreviated configuration. + + Added property handling to ServletHandler to read JRUN servlet configuration + files. + + Altered meaning of * in PropertyTree to assist in abbreviated configuration + files. + + Expanded Mime.prp file + + FileHandler flushes files from cache in DELETE method. + + Made ServerSocket and accept call generic in ThreadedServer for SSL + listeners. + + Options "allowDir" added to FileHandler. + + Restructured com.mortbay.Jetty.Server for better clarity and documentation. + + ThreadedServer.stop() now waits until all threads are stopped. + + Updated README.txt + +jetty-2.2.Beta3 - 22 June 1999 + + Added alternate constructors to HTML.Include for InputStream. + + Added file cache to FileHandler + + Applied contributed patch of spelling and typo corrections + + Fixed bug in HttpResponse flush. + + Fixed file and socket leaks in Include and Embed tags. + + Implemented efficient version of ServletContext.getResourceAsStream() that + does not open a new socket connection (as does getResource()). + + Improved Block.write. + + LookAndFeelServlet uses getResourceAsStream to get the file to wrap. This + allows it to benefit from any caching done and to wrap arbitrary content + (not just files). + + Ran dos2unix on all text files + + Re-implemented ThreadedServer to improve and balance performance. + + Restructure demo so that LookAndFeel content comes from simple handler + stack. + + Server.shutdown() clears configuration so that server may be restarted in + same virtual machine. + +jetty-2.2.Beta2 - 12 June 1999 + + Added all write methods to HttpOutputStream$SwitchOutputStream + + Added com.mortbay.Jetty.Server.shutdown() for gentler shutdown of server. + Called from Exit servlet + + Handle path info of a dynamic loaded servlets and correctly set the servlet + path. + + HttpRequest.getParameterNames() no longer alters the order returned by + getQueryString(). + + Standardized date format in persistent cookies. + +jetty-2.2.Beta1 - 07 June 1999 + + Allow configuration of MinListenerThreads, MaxListenerThreads, + MaxListenerThreadIdleMs + + Close files after use to avoid "file leak" under heavy load. + + Defined abstract ServletLoader, derivations of which can be specified in + HttpConfiguration properties. + + Destroy requests and responses to help garbage collector. + + Don't warn about IOExceptions unless Debug is on. + + Fixed cache in FileJarServletLoader + + Fixed incorrect version numbers in a few places. + + Fixed missing copyright messages from some contributions + + HtmlFilter optimized for being called by a buffered writer. + + Implemented all HttpServer attribute methods by mapping to the + HttpConfiguration properties. Dynamic reconfiguration is NOT supported by + these methods (but we are thinking about it). + + Improved ThreadPool synchronization and added minThreads. + + Included GNUJSP 0.9.9 + + Limit the job queue only grow to the max number of threads. + + Optional use of DateCache in log file format + + Restructure ThreadedServer to reduce object creation. + +jetty-2.2.Beta0 - 31 May 1999 + + Added "Initialize" attribute to servlet configuration to allow servlet to be + initialized when loaded. + + Added HttpResponse.requestHandled() method to avoid bug with servlet doHead + method. + + Added Page.rewind() method to allow a page to be written multiple times + + Handle malformed % characters in URLs. + + HttpRequest.getCookies returns empty array rather than null for no cookies. + + Included and improved version of ThreadPool for significant performance + improvement under high load. + + Included contributed com.mortbay.Jetty.StressTester class + + LogHandler changed to support only a single outfile and optional append. + + Removed support for STF + + Servlet loader handles jar files with different files separator. + + ThreadedServer gently shuts down. + + Token effort to keep test files out of the jar + +jetty-2.2.Alpha1 - 07 May 1999 + + Call destroy on old servlets when reloading. + + Dynamic servlets can have autoReload configured + + Fixed bug in SessionDump + + Made capitalization of config file more consistent(ish) + + ServletHolder can auto reload servlets + + Wait for requests to complete before reloading. + +jetty-2.2.Alpha0 - 06 May 1999 + + Added reload method to ServletHolder, but no way to call it yet. + + Added ServletLoader implementation if ClassLoader. + + Changed options for FileServer + + Dynamic loading of servlets. + + Fixed date overflow in Cookies + + HttpHandlers given setProperties method to configure via Properties. + + HttpListener class can be configured + + HttpResponse.sendError avoids IllegalStateException + + Implemented ServletServer + + Improved PropertyTree implementation + + Improved SessionDump servlet + + Mime suffix mapping can be configured. + + New Server class using PropertyTree for configuration + + Old Jetty.Server class renamed to Jetty.Server21 + + Removed historic API from sessions + + Removed SimpleServletServer + +jetty-2.1.7 - 22 April 1999 + + Fixed showstopper bug with getReader and getWriter in requests and + responses. + + HttpFilter uses package interface to get HttpOutputStream + +jetty-2.1.6 - 21 April 1999 + + Added additional date formats for HttpHeader.getDateHeader + + New simpler version of PropertyTree + + Reduced initial size of most hashtables to reduce default memory overheads. + + Return EOF from HttpInputStream that has a content length. + + Throw IllegalStateException as required from gets of + input/output/reader/writer in requests/responses. + + Updated PropertyTreeEditor + +jetty-2.1.5 - 15 April 1999 + + Added setType methods to com.mortbay.FTP.Ftp + + Fixed alignment bug in TableForm + + Fixed bug in ServletDispatch for null pathInfo + + Fixed bugs with invalid sessions + + Form parameters protected against multiple decodes when redirected. + + HtmlFilter now expands to the URL encoded session if required. + + Implemented HttpRequest.getReader() + + Instrumented most of the demo to support URL session encoding. + + Moved SessionHandler to front of stacks + + Page factory requires response for session encoding + + Reduced session memory overhead of sessions + + Removed RFCs from package + + Servlet log has been diverted to com.mortbay.Base.Log.event() Thus debug + does not need to be turned on to see servlet logs. + + Session URL encoding fixed for relative URLs. + +jetty-2.1.4 - 26 March 1999 + + fixed bug in getRealPath + + Fixed problem compiling PathMap under some JDKs. + + getPathTranslated now call getRealPath with pathInfo (as per spec). + + HttpRequest attributes implemented. + + pathInfo returns null for zero length pathInfo (as per spec). Sorry if this + breaks your servlets - it is a pain! + + Reduced HTML dependence in HTTP package to allow minimal configuration + + Session max idle time implemented. + + Tightened license agreement so that binary distributions are required to + include the license file. + +jetty-2.1.3 - 19 March 1999 + + Added support for suffixes to PathMap + + Included GNUJSP implementation of Java Server Pages + + Use Java2 javadoc + +jetty-2.1.2 - 09 March 1999 + + API documentation for JSDK 2.1.1 + + Cascading style sheet HTML element added. + + Converted most servlets to HttpServlets using do Methods. + + Fixed trailing / bug in FileHandler (again!). + + JSDK 2.1.1 + +jetty-2.1.1 - 05 March 1999 + + com.mortbay.Base.DateCache class added and used to speed date handling. + + Fast char buffer handling in HttpInputStream + + Faster version of HttpHeader.read() + + Faster version of HttpInputStream.readLine(). + + Faster version of HttpRequest + + Handle '.' in configured paths (temp fix until PropertyTrees) + + Reduced number of calls to getRemoteHost for optimization + + Size all StringBuffers + +jetty-2.1.0 - 22 February 1999 + + Deprecated com.mortbay.Util.STF + + getServlet methods return null. + + image/jpg -> image/jpeg + + PropertyTrees (see new Demo page) + + ServletDispatch (see new Demo page) + + Session URL Encoding + +jetty-2.1.B1 - 13 February 1999 + + Added video/quicktime to default MIME types. + + Fixed bug with if-modified-since in FileHandler + + Fixed bug with MultipartRequest. + + Implemented getResource and getResourceAsStream (NOT Tested!). + + Implemented Handler translations and getRealPath. + + Implemented RequestDispatcher (NOT Tested!). + + Improved handling of File.separator in FileHandler. + + Replace package com.mortbay.Util.Gateway with class + com.mortbay.Util.InetGateway + + Updated DefaultExceptionHandler. + + Updated InetAddrPort. + + Updated URI. + +jetty-2.1.B0 - 30 January 1999 + + Added plug gateway classes com.mortbay.Util.Gateway + + Added support for PUT, MOVE, DELETE in FileHandler + + FileHandler now sets content length. + + Fixed command line bug with SimpleServletConfig + + Minor changes to support MS J++ and its non standard language extensions - + MMMmmm should have left it unchanged! + + Uses JSDK2.1 API, but not all methods implemented. + +jetty-2.0.5 - 15 December 1998 + + added getHeaderNoParams + + Temp fix to getCharacterEncoding + +jetty-2.0.4 - 10 December 1998 + + Implement getCharacterEncoding + + Improved default Makefile behaviour + + Improved error code returns + + Portability issues solved for Apple's + + Removed MORTBAY_HOME support from Makefiles + + Use real release of JSDK2.0 (rather than beta). + +jetty-2.0.3 - 13 November 1998 + + Fix bug with index files for Jetty.Server. Previously servers configured + with com.mortbay.Jetty.Server would not handle index.html files. Need to + make this configurable in the prp file. + + Fixed errors in README file: com.mortbay.Jetty.Server was called + com.mortbay.HTTP.Server + + Limit threads in ThreadedServer and low priority listener option greatly + improve performance under worse case loads. + +jetty-2.0.2 - 01 November 1998 + + Add thread pool to threaded server for significant performance improvement. + + Buffer files during configuration + + Buffer HTTP Response headers. + + Use JETTY_HOME rather than MORTBAY_HOME for build environment + +jetty-2.0.1 - 27 October 1998 + + Released under an Open Source license. + +jetty-2.0.0 - 25 October 1998 + + Added multipart/form-data demo. + + Fixed Code.formatObject handling of null objects. + + Removed Chat demo (too many netscape dependencies). + + Removed exceptional case from FileHandler redirect. + +jetty-2.0.Beta3 - 29 September 1998 + + Added com.mortbay.HTTP.MultiPartRequest to handle file uploads + + Added com.mortbay.Jetty.Server (see README.Jetty) + + Demo converted to an instance of com.mortbay.Jetty.Server + + Fixed Log Handler again. + + Ignore exception from HttpListener + + Properly implemented multiple listening addresses + + Send 301 for directories without trailing / in FileHandler + +jetty-2.0Beta2 - 01 July 1998 + + Fixed Log Handler for HTTP/1.1 + + Slight improvement in READMEEs + +jetty-2.0Beta1 - 01 June 1998 + + Fixed bug with calls to service during initialization of servlet + + Handle full URLs in HTTP requests (to some extent) + + Improved performance of Code.debug() calls, significantly in the case of non + matching debug patterns. + + Improved performance with special asciiToLowerCase + + Provided addSection on com.mortbay.HTML.Page + + Provided reset on com.mortbay.HTML.Composite. + + Proxy demo in different server instance + + Warn if MSIE used for multi part MIME. + +jetty-2.0Alpha2 - 01 May 1998 + + Added date format to Log + + Added timezone to Log + + Handle params in getIntHeader and getDateHeader + + Handle Single Threaded servlets with servlet pool + + JDK1.2 javax.servlet API + + Removed HttpRequest.getByteContent + + Use javax.servlet.http.Cookie + + Use javax.servlet.http.HttpSession + + Use javax.servlet.http.HttpUtils.parsePostData + +jetty-1.3.5 - 01 May 1998 + + Added date format to Log + + Correct handling of multiple parameters + + Debug triggers added to com.mortbay.Base.Code + + Fixed socket inet bug in FTP + +jetty-2.0Alpha1 - 08 April 1998 + + accept chunked data + + Add HTTP/1.1 Date: header + + Correct formatting of Date HTTP headers + + Debug triggers added to com.mortbay.Base.Code + + Fixed forward bug with no port number + + handle extra spaces in HTTP headers + + Handle file requests with If-Modified-Since: or If-Unmodified-Since: + + Handle HEAD properly + + Handle HTTP/1.1 Host: header + + HttpTests test harness + + persistent connections + + Really fixed handling of multiple parameters + + Removed HttpRequestHeader class + + Requires Host: header for 1.1 requests + + Send 100 Continue for HTTP/1.1 requests (concerned about push???) + + Send Connection: close + + Sends chunked data for 1.1 responses of unknown length. + +jetty-1.3.4 - 15 March 1998 + + Dump servlet enhanced to exercise these changes. + + Fixed handling of multiple parameters in query and form content. + "?A=1%2C2&A=C%2CD" now returns two values ("1,2" & "C,D") rather than 4. + + ServletHandler now takes an optional file base directory name which is used + to set the translated path for pathInfo in servlet requests. + +jetty-1.3.3 + + Closed exception window in HttpListener.java + + Fixed TableForm.addButtonArea bug. + + TableForm.extendRow() uses existing cell + +jetty-1.3.2 + + Added per Table cell composite factories + + Fixed proxy bug with no port number + +jetty-1.3.1 + + Better handling of InvocationTargetException in debug + + ForwardHandler only forwards as http/1.0 (from Tobias.Miller) + + Improved parsing of stack traces + + Minor fixes in SmtpMail + + Minor release adjustments for Tracker + +jetty-1.3.0 + + Added DbAdaptor to JDBC wrappers + + Beta release of Tracker + +jetty-1.2.0 + + Alternate look and feel for Jetty + + Better Debug configuration + + DebugServlet + + Fixed install bug for nested classes + + Reintroduced STF + +jetty-1.1.1 + + Improved documentation + +jetty-1.1 + + Improved connection caching in java.mortbay.JDBC + + Moved HttpCode to com.mortbay.Util + +jetty-1.0.1 + + Bug fixes + +jetty-1.0 + + First release in com.mortbay package structure + + Included Util, JDBC, HTML, HTTP, Jetty + diff --git a/src/hatch/jetty/bin/jetty.sh b/src/hatch/jetty/bin/jetty.sh new file mode 100644 index 000000000..da6f571a6 --- /dev/null +++ b/src/hatch/jetty/bin/jetty.sh @@ -0,0 +1,597 @@ +#!/usr/bin/env bash +# +# Startup script for jetty under *nix systems (it works under NT/cygwin too). + +################################################## +# Set the name which is used by other variables. +# Defaults to the file name without extension. +################################################## +NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') + +# To get the service to restart correctly on reboot, uncomment below (3 lines): +# ======================== +# chkconfig: 3 99 99 +# description: Jetty 9 webserver +# processname: jetty +# ======================== + +# Configuration files +# +# /etc/default/$NAME +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# $HOME/.$NAMErc (e.g. $HOME/.jettyrc) +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# /etc/$NAME.conf +# If found, and no configurations were given on the command line, +# the file will be used as this script's configuration. +# Each line in the file may contain: +# - A comment denoted by the pound (#) sign as first non-blank character. +# - The path to a regular file, which will be passed to jetty as a +# config.xml file. +# - The path to a directory. Each *.xml file in the directory will be +# passed to jetty as a config.xml file. +# - All other lines will be passed, as-is to the start.jar +# +# The files will be checked for existence before being passed to jetty. +# +# Configuration variables +# +# JAVA +# Command to invoke Java. If not set, java (from the PATH) will be used. +# +# JAVA_OPTIONS +# Extra options to pass to the JVM +# +# JETTY_HOME +# Where Jetty is installed. If not set, the script will try go +# guess it by looking at the invocation path for the script +# The java system property "jetty.home" will be +# set to this value for use by configure.xml files, f.e.: +# +# /webapps/jetty.war +# +# JETTY_BASE +# Where your Jetty base directory is. If not set, the value from +# $JETTY_HOME will be used. +# +# JETTY_RUN +# Where the $NAME.pid file should be stored. It defaults to the +# first available of /var/run, /usr/var/run, JETTY_BASE and /tmp +# if not set. +# +# JETTY_PID +# The Jetty PID file, defaults to $JETTY_RUN/$NAME.pid +# +# JETTY_ARGS +# The default arguments to pass to jetty. +# For example +# JETTY_ARGS=jetty.port=8080 jetty.spdy.port=8443 jetty.secure.port=443 +# +# JETTY_USER +# if set, then used as a username to run the server as +# +# JETTY_SHELL +# If set, then used as the shell by su when starting the server. Will have +# no effect if start-stop-daemon exists. Useful when JETTY_USER does not +# have shell access, e.g. /bin/false +# + +usage() +{ + echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " + exit 1 +} + +[ $# -gt 0 ] || usage + + +################################################## +# Some utility functions +################################################## +findDirectory() +{ + local L OP=$1 + shift + for L in "$@"; do + [ "$OP" "$L" ] || continue + printf %s "$L" + break + done +} + +running() +{ + if [ -f "$1" ] + then + local PID=$(cat "$1" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null + return + fi + rm -f "$1" + return 1 +} + +started() +{ + # wait for 60s to see "STARTED" in PID file, needs jetty-started.xml as argument + for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 + do + sleep 4 + [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 + [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 + [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 + local PID=$(cat "$2" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null || return 1 + echo -n ". " + done + + return 1; +} + + +readConfig() +{ + (( DEBUG )) && echo "Reading $1.." + source "$1" +} + + + +################################################## +# Get the action & configs +################################################## +CONFIGS=() +NO_START=0 +DEBUG=0 + +while [[ $1 = -* ]]; do + case $1 in + -d) DEBUG=1 ;; + esac + shift +done +ACTION=$1 +shift + +################################################## +# Read any configuration files +################################################## +ETC=/etc +if [ $UID != 0 ] +then + ETC=$HOME/etc +fi + +for CONFIG in $ETC/default/${NAME}{,9} $HOME/.${NAME}rc; do + if [ -f "$CONFIG" ] ; then + readConfig "$CONFIG" + fi +done + + +################################################## +# Set tmp if not already set. +################################################## +TMPDIR=${TMPDIR:-/tmp} + +################################################## +# Jetty's hallmark +################################################## +JETTY_INSTALL_TRACE_FILE="start.jar" + + +################################################## +# Try to determine JETTY_HOME if not set +################################################## +if [ -z "$JETTY_HOME" ] +then + JETTY_SH=$0 + case "$JETTY_SH" in + /*) JETTY_HOME=${JETTY_SH%/*/*} ;; + ./*/*) JETTY_HOME=${JETTY_SH%/*/*} ;; + ./*) JETTY_HOME=.. ;; + */*/*) JETTY_HOME=./${JETTY_SH%/*/*} ;; + */*) JETTY_HOME=. ;; + *) JETTY_HOME=.. ;; + esac + + if [ ! -f "$JETTY_HOME/$JETTY_INSTALL_TRACE_FILE" ] + then + JETTY_HOME= + fi +fi + + +################################################## +# No JETTY_HOME yet? We're out of luck! +################################################## +if [ -z "$JETTY_HOME" ]; then + echo "** ERROR: JETTY_HOME not set, you need to set it or install in a standard location" + exit 1 +fi + +cd "$JETTY_HOME" +JETTY_HOME=$PWD + + +################################################## +# Set JETTY_BASE +################################################## +if [ -z "$JETTY_BASE" ]; then + JETTY_BASE=$JETTY_HOME +fi + +cd "$JETTY_BASE" +JETTY_BASE=$PWD + + +##################################################### +# Check that jetty is where we think it is +##################################################### +if [ ! -r "$JETTY_HOME/$JETTY_INSTALL_TRACE_FILE" ] +then + echo "** ERROR: Oops! Jetty doesn't appear to be installed in $JETTY_HOME" + echo "** ERROR: $JETTY_HOME/$JETTY_INSTALL_TRACE_FILE is not readable!" + exit 1 +fi + +################################################## +# Try to find this script's configuration file, +# but only if no configurations were given on the +# command line. +################################################## +if [ -z "$JETTY_CONF" ] +then + if [ -f $ETC/${NAME}.conf ] + then + JETTY_CONF=$ETC/${NAME}.conf + elif [ -f "$JETTY_BASE/etc/jetty.conf" ] + then + JETTY_CONF=$JETTY_BASE/etc/jetty.conf + elif [ -f "$JETTY_HOME/etc/jetty.conf" ] + then + JETTY_CONF=$JETTY_HOME/etc/jetty.conf + fi +fi + +##################################################### +# Find a location for the pid file +##################################################### +if [ -z "$JETTY_RUN" ] +then + JETTY_RUN=$(findDirectory -w /var/run /usr/var/run $JETTY_BASE /tmp) +fi + +##################################################### +# Find a pid and state file +##################################################### +if [ -z "$JETTY_PID" ] +then + JETTY_PID="$JETTY_RUN/${NAME}.pid" +fi + +if [ -z "$JETTY_STATE" ] +then + JETTY_STATE=$JETTY_BASE/${NAME}.state +fi + +case "`uname`" in +CYGWIN*) JETTY_STATE="`cygpath -w $JETTY_STATE`";; +esac + + +JETTY_ARGS=(${JETTY_ARGS[*]} "jetty.state=$JETTY_STATE") + +################################################## +# Get the list of config.xml files from jetty.conf +################################################## +if [ -f "$JETTY_CONF" ] && [ -r "$JETTY_CONF" ] +then + while read -r CONF + do + if expr "$CONF" : '#' >/dev/null ; then + continue + fi + + if [ -d "$CONF" ] + then + # assume it's a directory with configure.xml files + # for example: /etc/jetty.d/ + # sort the files before adding them to the list of JETTY_ARGS + for XMLFILE in "$CONF/"*.xml + do + if [ -r "$XMLFILE" ] && [ -f "$XMLFILE" ] + then + JETTY_ARGS=(${JETTY_ARGS[*]} "$XMLFILE") + else + echo "** WARNING: Cannot read '$XMLFILE' specified in '$JETTY_CONF'" + fi + done + else + # assume it's a command line parameter (let start.jar deal with its validity) + JETTY_ARGS=(${JETTY_ARGS[*]} "$CONF") + fi + done < "$JETTY_CONF" +fi + +################################################## +# Setup JAVA if unset +################################################## +if [ -z "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ -z "$JAVA" ] +then + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 + exit 1 +fi + +##################################################### +# See if JETTY_LOGS is defined +##################################################### +if [ -z "$JETTY_LOGS" ] && [ -d $JETTY_BASE/logs ] +then + JETTY_LOGS=$JETTY_BASE/logs +fi +if [ -z "$JETTY_LOGS" ] && [ -d $JETTY_HOME/logs ] +then + JETTY_LOGS=$JETTY_HOME/logs +fi +if [ "$JETTY_LOGS" ] +then + + case "`uname`" in + CYGWIN*) JETTY_LOGS="`cygpath -w $JETTY_LOGS`";; + esac + + JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Djetty.logs=$JETTY_LOGS") +fi + +##################################################### +# Are we running on Windows? Could be, with Cygwin/NT. +##################################################### +case "`uname`" in +CYGWIN*) PATH_SEPARATOR=";";; +*) PATH_SEPARATOR=":";; +esac + + +##################################################### +# Add jetty properties to Java VM options. +##################################################### + +case "`uname`" in +CYGWIN*) +JETTY_HOME="`cygpath -w $JETTY_HOME`" +JETTY_BASE="`cygpath -w $JETTY_BASE`" +TMPDIR="`cygpath -w $TMPDIR`" +;; +esac + +JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Djetty.home=$JETTY_HOME" "-Djetty.base=$JETTY_BASE" "-Djava.io.tmpdir=$TMPDIR") + +##################################################### +# This is how the Jetty server will be started +##################################################### + +JETTY_START=$JETTY_HOME/start.jar +START_INI=$JETTY_BASE/start.ini +START_D=$JETTY_BASE/start.d +if [ ! -f "$START_INI" -a ! -d "$START_D" ] +then + echo "Cannot find a start.ini file or a start.d directory in your JETTY_BASE directory: $JETTY_BASE" >&2 + exit 1 +fi + +case "`uname`" in +CYGWIN*) JETTY_START="`cygpath -w $JETTY_START`";; +esac + +RUN_ARGS=(${JAVA_OPTIONS[@]} -jar "$JETTY_START" ${JETTY_ARGS[*]}) +RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) + +##################################################### +# Comment these out after you're happy with what +# the script is doing. +##################################################### +if (( DEBUG )) +then + echo "START_INI = $START_INI" + echo "START_D = $START_D" + echo "JETTY_HOME = $JETTY_HOME" + echo "JETTY_BASE = $JETTY_BASE" + echo "JETTY_CONF = $JETTY_CONF" + echo "JETTY_PID = $JETTY_PID" + echo "JETTY_START = $JETTY_START" + echo "JETTY_ARGS = ${JETTY_ARGS[*]}" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "JAVA = $JAVA" + echo "RUN_CMD = ${RUN_CMD[*]}" +fi + +################################################## +# Do the action +################################################## +case "$ACTION" in + start) + echo -n "Starting Jetty: " + + if (( NO_START )); then + echo "Not starting ${NAME} - NO_START=1"; + exit + fi + + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 + then + unset CH_USER + if [ -n "$JETTY_USER" ] + then + CH_USER="-c$JETTY_USER" + fi + + start-stop-daemon -S -p"$JETTY_PID" $CH_USER -d"$JETTY_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$JETTY_LOGS/start.log" + + else + + if running $JETTY_PID + then + echo "Already Running $(cat $JETTY_PID)!" + exit 1 + fi + + if [ -n "$JETTY_USER" ] + then + unset SU_SHELL + if [ "$JETTY_SHELL" ] + then + SU_SHELL="-s $JETTY_SHELL" + fi + + touch "$JETTY_PID" + chown "$JETTY_USER" "$JETTY_PID" + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. + su - "$JETTY_USER" $SU_SHELL -c " + exec ${RUN_CMD[*]} start-log-file="$JETTY_LOGS/start.log" & + disown \$! + echo \$! > '$JETTY_PID'" + else + "${RUN_CMD[@]}" & + disown $! + echo $! > "$JETTY_PID" + fi + + fi + + if expr "${JETTY_ARGS[*]}" : '.*jetty-started.xml.*' >/dev/null + then + if started "$JETTY_STATE" "$JETTY_PID" + then + echo "OK `date`" + else + echo "FAILED `date`" + exit 1 + fi + else + echo "ok `date`" + fi + + ;; + + stop) + echo -n "Stopping Jetty: " + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then + start-stop-daemon -K -p"$JETTY_PID" -d"$JETTY_HOME" -a "$JAVA" -s HUP + + TIMEOUT=30 + while running "$JETTY_PID"; do + if (( TIMEOUT-- == 0 )); then + start-stop-daemon -K -p"$JETTY_PID" -d"$JETTY_HOME" -a "$JAVA" -s KILL + fi + + sleep 1 + done + else + if [ ! -f "$JETTY_PID" ] ; then + echo "ERROR: no pid found at $JETTY_PID" + exit 1 + fi + + PID=$(cat "$JETTY_PID" 2>/dev/null) + if [ -z "$PID" ] ; then + echo "ERROR: no pid id found in $JETTY_PID" + exit 1 + fi + kill "$PID" 2>/dev/null + + TIMEOUT=30 + while running $JETTY_PID; do + if (( TIMEOUT-- == 0 )); then + kill -KILL "$PID" 2>/dev/null + fi + + sleep 1 + done + fi + + rm -f "$JETTY_PID" + rm -f "$JETTY_STATE" + echo OK + + ;; + + restart) + JETTY_SH=$0 + if [ ! -f $JETTY_SH ]; then + if [ ! -f $JETTY_HOME/bin/jetty.sh ]; then + echo "$JETTY_HOME/bin/jetty.sh does not exist." + exit 1 + fi + JETTY_SH=$JETTY_HOME/bin/jetty.sh + fi + + "$JETTY_SH" stop "$@" + "$JETTY_SH" start "$@" + + ;; + + supervise) + # + # Under control of daemontools supervise monitor which + # handles restarts and shutdowns via the svc program. + # + exec "${RUN_CMD[@]}" + + ;; + + run|demo) + echo "Running Jetty: " + + if running "$JETTY_PID" + then + echo Already Running $(cat "$JETTY_PID")! + exit 1 + fi + + exec "${RUN_CMD[@]}" + ;; + + check|status) + echo "Checking arguments to Jetty: " + echo "START_INI = $START_INI" + echo "START_D = $START_D" + echo "JETTY_HOME = $JETTY_HOME" + echo "JETTY_BASE = $JETTY_BASE" + echo "JETTY_CONF = $JETTY_CONF" + echo "JETTY_PID = $JETTY_PID" + echo "JETTY_START = $JETTY_START" + echo "JETTY_LOGS = $JETTY_LOGS" + echo "JETTY_STATE = $JETTY_STATE" + echo "CLASSPATH = $CLASSPATH" + echo "JAVA = $JAVA" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "JETTY_ARGS = ${JETTY_ARGS[*]}" + echo "RUN_CMD = ${RUN_CMD[*]}" + echo + + if running "$JETTY_PID" + then + echo "Jetty running pid=$(< "$JETTY_PID")" + exit 0 + fi + exit 1 + + ;; + + *) + usage + + ;; +esac + +exit 0 diff --git a/src/hatch/jetty/demo-base/etc/demo-rewrite-rules.xml b/src/hatch/jetty/demo-base/etc/demo-rewrite-rules.xml new file mode 100644 index 000000000..35a8f8758 --- /dev/null +++ b/src/hatch/jetty/demo-base/etc/demo-rewrite-rules.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + /favicon.ico + Cache-Control + Max-Age=3600,public + true + + + + + + + + + /test/rewrite/ + /test/rewrite/info.html + + + + + + + + + /test/some/old/context + /test/rewritten/newcontext + + + + + + + + + /test/rewrite/for/* + /test/rewritten/ + + + + + + + + + (.*?)/reverse/([^/]*)/(.*) + $1/reverse/$3/$2 + + + + + + + + + /* + visited + yes + + + + + + + + + /test/redirect/* + /test/redirected + + + + + + + + + /400Error + 400 + ResponsePatternRule Demo + + + + + diff --git a/src/hatch/jetty/demo-base/etc/keystore b/src/hatch/jetty/demo-base/etc/keystore new file mode 100644 index 0000000000000000000000000000000000000000..08f6cda8a7b0104236c37f3c06b4cda1d8fc58e6 GIT binary patch literal 1416 zcmezO_TO6u1_mY|W&~r_tkjZ{N+3_R)UekNZbhDKH`EXUR-=hO7hY&y{H-e(+TowuJ*{`? zwVfT`ns@KmCLd9_H?QZ%#(VNFq-*~l&ib%)(Y!;gI{W`RJIFow^~EB{E~hHzXm8Qd z$+I3OFWL4l%D`0pEH}^DdFqAf_3vNy-07jRmW@8^t|?HpH{w+9zJZ0HTQ{GwgE`KsL0)*BinM>ExK{8V|s z_c83?=Ue&W%>UG?wT~>g^C-D5b6Kid$utMyOUY~8&RQ2O5Kv$6WA72RZCZOI`%XW7 zWGv*iET~D-A?Uf$)PkAXC#^&coOKW1)_jbSp1ybc*-Pg z*1AKX?hJ-g?<}Z|$~fj~%&Q)8GVXHmuY_w7iL*9Li<#ba=>(4shvkf&zalFllPfRmB({Gr>G+(AG{|j5^yi-$J^G%gy&!3%F`Y=?Z zqHag3(zm<4?6(-6S8caBa7ykAzsvLfb>|ds{`&FW?ULoW&INs`nHskiv_4^yUS(;u zwJG}=M=euvt`d*!{pAW3tsAR0lWEH+#d4(r%9_{jEh_BIde_H z2F(udYbrB!9Sz@xPFu0!#>2SI`Ssat!p3^(;?40Uy|?vOtS!3O8Zd1|F}L60tKCOm znylYEA@-w}ri%BqU%N_+XGl&zI@4*vv5nXG(`N27=6zy$WG5s+N9dUvSOODr2QVSG z7&I}yWn%FZKK#XimyJ`a&7GmI50%m z5h5xEN+4Za!qUF^MI{POiIob@`FX{qIVG8S=?VcQl?py3DTaIoJRnuv!mM7P3}z^0 zAOYet3k!lXoL(+aZ&G5VUVc%!ft)z6frX)=fw_T+k%h5YlsK=knSrs9DU>^yoZ2`a zIUIo{19M|9Ff2Qn8XFm!A3o&OeJrUOYjfQ^)giy{^|QK1CEP2QH%vD1Nc3MB^xmW4 z2fxzex2hhF*O)r=%WpirQ+H{vy7qk+o=56U7bdiMykRRo{_oVH)zDhW2yL+!vyn`wiA33|lR42Pgou}g~dvauF+U45K+=Wccj0}v( z&I3j>GtgZkrPhJg=H9<%l_$GC*-}{lrfI>Hv$DOvyPj6+9TS$eJZ37ao71_#A!EVD zCY$?z=d9ULtT&}=o8QIxpMTDAp0ptI@ccyM2W9WgVozM<*}KLmGg5O$WNJ zyVS~6#D7};!ib^4U#WeU%`4Hj5}6$f=N+nWnZl~&!Rl~+N3e: [, ...] +# +# Passwords may be clear text, obfuscated or checksummed. The class +# org.eclipse.util.Password should be used to generate obfuscated +# passwords or password checksums +# +# If DIGEST Authentication is used, the password must be in a recoverable +# format, either plain text or OBF:. +# +jetty: MD5:164c88b302622e17050af52c89945d44,user +admin: CRYPT:adpexzg3FUZAk,server-administrator,content-administrator,admin,user +other: OBF:1xmk1w261u9r1w1c1xmq,user +plain: plain,user +user: password,user + +# This entry is for digest auth. The credential is a MD5 hash of username:realmname:password +digest: MD5:6e120743ad67abfbc385bc2bb754e297,user diff --git a/src/hatch/jetty/demo-base/etc/test-realm.xml b/src/hatch/jetty/demo-base/etc/test-realm.xml new file mode 100644 index 000000000..d5c776ba0 --- /dev/null +++ b/src/hatch/jetty/demo-base/etc/test-realm.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + Test Realm + + 0 + + + + + + demo test-realm is deployed. DO NOT USE IN PRODUCTION! + + diff --git a/src/hatch/jetty/demo-base/lib/ext/javax.mail.glassfish-1.4.1.v201005082020.jar b/src/hatch/jetty/demo-base/lib/ext/javax.mail.glassfish-1.4.1.v201005082020.jar new file mode 100644 index 0000000000000000000000000000000000000000..f2dda8a126218ae4bdd959057be32982bdbb69d5 GIT binary patch literal 490811 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 #-thILeu`>Lu}s)eOn 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

Yx3JC%$Yj$8V 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

  • Qd(lTaqh3_xbe> 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 z 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 (9~f? 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 literal 0 HcmV?d00001 diff --git a/src/hatch/jetty/demo-base/lib/ext/test-mock-resources-9.3.3.v20150827.jar b/src/hatch/jetty/demo-base/lib/ext/test-mock-resources-9.3.3.v20150827.jar new file mode 100644 index 0000000000000000000000000000000000000000..c841bab578e8fca2cad23861d473d756cf93a1b2 GIT binary patch literal 6155 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 literal 0 HcmV?d00001 diff --git a/src/hatch/jetty/demo-base/start.d/http.ini b/src/hatch/jetty/demo-base/start.d/http.ini new file mode 100644 index 000000000..a00ea2f19 --- /dev/null +++ b/src/hatch/jetty/demo-base/start.d/http.ini @@ -0,0 +1,19 @@ +# --------------------------------------- +# Module: http +--module=http +### HTTP Connector Configuration + +## HTTP port to listen on +jetty.port=8080 + +## HTTP idle timeout in milliseconds +http.timeout=30000 + +## HTTP Socket.soLingerTime in seconds. (-1 to disable) +# http.soLingerTime=-1 + +## Parameters to control the number and priority of acceptors and selectors +# http.selectors=1 +# http.acceptors=1 +# http.selectorPriorityDelta=0 +# http.acceptorPriorityDelta=0 diff --git a/src/hatch/jetty/demo-base/start.d/https.ini b/src/hatch/jetty/demo-base/start.d/https.ini new file mode 100644 index 000000000..cc7278dd2 --- /dev/null +++ b/src/hatch/jetty/demo-base/start.d/https.ini @@ -0,0 +1,11 @@ +# --------------------------------------- +# Module: https +--module=https +## HTTPS Configuration +# HTTP port to listen on +https.port=8443 +# HTTPS idle timeout in milliseconds +https.timeout=30000 +# HTTPS Socket.soLingerTime in seconds. (-1 to disable) +# https.soLingerTime=-1 + diff --git a/src/hatch/jetty/demo-base/start.d/jsp.ini b/src/hatch/jetty/demo-base/start.d/jsp.ini new file mode 100644 index 000000000..78ee34fa4 --- /dev/null +++ b/src/hatch/jetty/demo-base/start.d/jsp.ini @@ -0,0 +1,14 @@ +# --------------------------------------- +# Module: jsp +--module=jsp +# JSP Configuration + +# Select JSP implementation, choices are +# glassfish : The reference implementation +# default in jetty <= 9.1 +# apache : The apache version +# default jetty >= 9.2 +jsp-impl=apache + +# To use a non-jdk compiler for JSP compilation when using glassfish uncomment next line +# -Dorg.apache.jasper.compiler.disablejsr199=true diff --git a/src/hatch/jetty/demo-base/start.d/jstl.ini b/src/hatch/jetty/demo-base/start.d/jstl.ini new file mode 100644 index 000000000..29efacc00 --- /dev/null +++ b/src/hatch/jetty/demo-base/start.d/jstl.ini @@ -0,0 +1,8 @@ +# --------------------------------------- +# Module: jstl +--module=jstl +# JSTL Configuration +# The glassfish jsp-impl includes JSTL by default and this module +# is not required to activate it. +# The apache jsp-impl does not include JSTL by default and this module +# is required to put JSTL on the container classpath diff --git a/src/hatch/jetty/demo-base/start.d/ssl.ini b/src/hatch/jetty/demo-base/start.d/ssl.ini new file mode 100644 index 000000000..25035e98b --- /dev/null +++ b/src/hatch/jetty/demo-base/start.d/ssl.ini @@ -0,0 +1,29 @@ +# --------------------------------------- +# Module: ssl +--module=ssl +### SSL Keystore Configuration +# define the port to use for secure redirection +jetty.secure.port=8443 + +## Setup a demonstration keystore and truststore +jetty.keystore=etc/keystore +jetty.truststore=etc/keystore + +## Set the demonstration passwords. +## Note that OBF passwords are not secure, just protected from casual observation +## See http://www.eclipse.org/jetty/documentation/current/configuring-security-secure-passwords.html +jetty.keystore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4 +jetty.keymanager.password=OBF:1u2u1wml1z7s1z7a1wnl1u2g +jetty.truststore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4 + +### Set the client auth behavior +## Set to true if client certificate authentication is required +# jetty.ssl.needClientAuth=true +## Set to true if client certificate authentication is desired +# jetty.ssl.wantClientAuth=true + +## Parameters to control the number and priority of acceptors and selectors +# ssl.selectors=1 +# ssl.acceptors=1 +# ssl.selectorPriorityDelta=0 +# ssl.acceptorPriorityDelta=0 diff --git a/src/hatch/jetty/demo-base/start.ini b/src/hatch/jetty/demo-base/start.ini new file mode 100644 index 000000000..e80387fb7 --- /dev/null +++ b/src/hatch/jetty/demo-base/start.ini @@ -0,0 +1,82 @@ +# +# Example of providing a demo configuration, using a ${jetty.base} +# +# Additional ini files are in demo-base/start.d +# + +# Enable security via jaas, and configure it +--module=jaas +jaas.login.conf=etc/login.conf + +# Enable rewrite examples +--module=rewrite +etc/demo-rewrite-rules.xml + +# Websocket chat examples needs websocket enabled +# Don't start for all contexts (set to true in test.xml context) +org.eclipse.jetty.websocket.jsr356=false +--module=websocket + +# Create and configure the test realm +etc/test-realm.xml +demo.realm=etc/realm.properties + + +# --------------------------------------- +# Module: server +--module=server +## +## Server Threading Configuration +## +# minimum number of threads +threads.min=10 +# maximum number of threads +threads.max=200 +# thread idle timeout in milliseconds +threads.timeout=60000 +# buffer size for output +jetty.output.buffer.size=32768 +# request header buffer size +jetty.request.header.size=8192 +# response header buffer size +jetty.response.header.size=8192 +# should jetty send the server version header? +jetty.send.server.version=true +# should jetty send the date header? +jetty.send.date.header=false +# What host to listen on (leave commented to listen on all interfaces) +#jetty.host=myhost.com +# Dump the state of the Jetty server, components, and webapps after startup +jetty.dump.start=false +# Dump the state of the Jetty server, before stop +jetty.dump.stop=false +# Enable delayed dispatch optimisation +jetty.delayDispatchUntilContent=false + +# --------------------------------------- +# Module: continuation +--module=continuation + +# --------------------------------------- +# Module: deploy +--module=deploy +## DeployManager configuration +# Monitored Directory name (relative to jetty.base) +# jetty.deploy.monitoredDirName=webapps + + +# --------------------------------------- +# Module: ext +--module=ext + +# --------------------------------------- +# Module: resources +--module=resources + +# --------------------------------------- +# Module: client +--module=client + +# --------------------------------------- +# Module: servlets +--module=servlets diff --git a/src/hatch/jetty/demo-base/webapps/README.TXT b/src/hatch/jetty/demo-base/webapps/README.TXT new file mode 100644 index 000000000..d6fb93b89 --- /dev/null +++ b/src/hatch/jetty/demo-base/webapps/README.TXT @@ -0,0 +1,12 @@ + +This directory is scanned by the demo WebAppDeployer provider +created in the etc/jetty-demo.xml file and enabled by the +start.d/900-demo.ini file. + +To disable the demo, either remove the start.d/900-demo.ini or issue the following command: + + java -jar start.jar --disable=demo + + +For normal webapp deployment, use the webapps directory. + diff --git a/src/hatch/jetty/demo-base/webapps/ROOT/images/jetty-header.jpg b/src/hatch/jetty/demo-base/webapps/ROOT/images/jetty-header.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f40c3644cc0372ed95564fa9a1608eaa337479db GIT binary patch literal 103289 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

      x;PYK`0Rw_r*S>0$^(9?a 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

      -2Hdmk2i<+D{6@ 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

      mVF&rIVprG%n(!UR9JTLzJx;l0uqF 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�{tL(-A{5OvF&nZ+8;5%X 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 literal 0 HcmV?d00001 diff --git a/src/hatch/jetty/demo-base/webapps/ROOT/images/webtide_logo.jpg b/src/hatch/jetty/demo-base/webapps/ROOT/images/webtide_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b949919f08bc0ce7fe6f7e97810025e6609cb1fb GIT binary patch literal 17678 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 + + + + +Welcome to Jetty-9 + + + + +

      + +
      +

      Welcome to Jetty 9

      + +

      + The Jetty project is a 100% Java Servlet + Container which supports asynchronous server and client + implementations of the HTTP, + Websocket and SPDY protocols. The + project is 100% Open Source and hosted by the Eclipse Foundation at http://www.eclipse.org/jetty. +

      +
      + + + +
      +

      Jetty Blog

      +