From e7208b86fa06ecbad78ae66c9c9f858c82c75917 Mon Sep 17 00:00:00 2001 From: Jesse McConnell Date: Tue, 25 Feb 2014 14:27:42 -0600 Subject: [PATCH 001/114] set for release --- VERSION.txt | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index d8ef8376806..9b45d9432ad 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1,11 +1,30 @@ -jetty-9.1.3-SNAPSHOT +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 + + 425275 org.eclipse.jetty.osgi.annotations.AnnotationConfiguration.BundleParserTask.getStatistic() returns null when debug is enabled. + 425638 Fixed monitor module/xml typos From 511162bc73a49555d5cec7de09769155e827a9d9 Mon Sep 17 00:00:00 2001 From: Jesse McConnell Date: Tue, 25 Feb 2014 14:54:11 -0600 Subject: [PATCH 002/114] [maven-release-plugin] prepare release jetty-9.1.3.v20140225 --- aggregates/jetty-all/pom.xml | 2 +- examples/async-rest/async-rest-jar/pom.xml | 2 +- examples/async-rest/async-rest-webapp/pom.xml | 2 +- examples/async-rest/pom.xml | 2 +- examples/embedded/pom.xml | 2 +- examples/pom.xml | 2 +- jetty-annotations/pom.xml | 2 +- jetty-ant/pom.xml | 2 +- jetty-client/pom.xml | 2 +- jetty-continuation/pom.xml | 2 +- jetty-deploy/pom.xml | 2 +- jetty-distribution/pom.xml | 2 +- jetty-http-spi/pom.xml | 2 +- jetty-http/pom.xml | 2 +- jetty-io/pom.xml | 2 +- jetty-jaas/pom.xml | 2 +- jetty-jaspi/pom.xml | 2 +- jetty-jmx/pom.xml | 2 +- jetty-jndi/pom.xml | 2 +- jetty-jsp/pom.xml | 2 +- jetty-jspc-maven-plugin/pom.xml | 2 +- jetty-maven-plugin/pom.xml | 2 +- jetty-monitor/pom.xml | 2 +- jetty-nosql/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-jsp/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-warurl/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot/pom.xml | 2 +- jetty-osgi/jetty-osgi-httpservice/pom.xml | 2 +- jetty-osgi/jetty-osgi-npn/pom.xml | 2 +- jetty-osgi/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-context/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-webapp/pom.xml | 2 +- jetty-osgi/test-jetty-osgi/pom.xml | 2 +- jetty-plus/pom.xml | 2 +- jetty-proxy/pom.xml | 2 +- jetty-rewrite/pom.xml | 2 +- jetty-runner/pom.xml | 2 +- jetty-security/pom.xml | 2 +- jetty-server/pom.xml | 2 +- jetty-servlet/pom.xml | 2 +- jetty-servlets/pom.xml | 2 +- jetty-spdy/pom.xml | 2 +- jetty-spdy/spdy-client/pom.xml | 2 +- jetty-spdy/spdy-core/pom.xml | 2 +- jetty-spdy/spdy-example-webapp/pom.xml | 2 +- jetty-spdy/spdy-http-client-transport/pom.xml | 2 +- jetty-spdy/spdy-http-common/pom.xml | 2 +- jetty-spdy/spdy-http-server/pom.xml | 2 +- jetty-spdy/spdy-server/pom.xml | 2 +- jetty-spring/pom.xml | 2 +- jetty-start/pom.xml | 2 +- jetty-util-ajax/pom.xml | 2 +- jetty-util/pom.xml | 2 +- jetty-webapp/pom.xml | 2 +- jetty-websocket/javax-websocket-client-impl/pom.xml | 2 +- jetty-websocket/javax-websocket-server-impl/pom.xml | 2 +- jetty-websocket/pom.xml | 2 +- jetty-websocket/websocket-api/pom.xml | 2 +- jetty-websocket/websocket-client/pom.xml | 2 +- jetty-websocket/websocket-common/pom.xml | 2 +- jetty-websocket/websocket-server/pom.xml | 2 +- jetty-websocket/websocket-servlet/pom.xml | 2 +- jetty-xml/pom.xml | 2 +- pom.xml | 2 +- tests/pom.xml | 2 +- tests/test-continuation/pom.xml | 2 +- tests/test-integration/pom.xml | 2 +- tests/test-loginservice/pom.xml | 2 +- tests/test-sessions/pom.xml | 2 +- tests/test-sessions/test-hash-sessions/pom.xml | 2 +- tests/test-sessions/test-jdbc-sessions/pom.xml | 2 +- tests/test-sessions/test-sessions-common/pom.xml | 2 +- tests/test-webapps/pom.xml | 2 +- tests/test-webapps/test-jaas-webapp/pom.xml | 2 +- tests/test-webapps/test-jetty-webapp/pom.xml | 2 +- tests/test-webapps/test-jndi-webapp/pom.xml | 2 +- tests/test-webapps/test-mock-resources/pom.xml | 2 +- tests/test-webapps/test-proxy-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/pom.xml | 2 +- .../test-servlet-spec/test-container-initializer/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml | 2 +- tests/test-webapps/test-webapp-rfc2616/pom.xml | 2 +- 83 files changed, 83 insertions(+), 83 deletions(-) diff --git a/aggregates/jetty-all/pom.xml b/aggregates/jetty-all/pom.xml index 89bacf65e7a..7aadb75c672 100644 --- a/aggregates/jetty-all/pom.xml +++ b/aggregates/jetty-all/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../../pom.xml 4.0.0 diff --git a/examples/async-rest/async-rest-jar/pom.xml b/examples/async-rest/async-rest-jar/pom.xml index 03f8e5450a5..e702209d207 100644 --- a/examples/async-rest/async-rest-jar/pom.xml +++ b/examples/async-rest/async-rest-jar/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/async-rest-webapp/pom.xml b/examples/async-rest/async-rest-webapp/pom.xml index dfa2a49f8e5..c90669cf46d 100644 --- a/examples/async-rest/async-rest-webapp/pom.xml +++ b/examples/async-rest/async-rest-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/pom.xml b/examples/async-rest/pom.xml index 81d8a41db7d..4e6699ae825 100644 --- a/examples/async-rest/pom.xml +++ b/examples/async-rest/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index cc6ec0cf622..e3ecc0b2dfb 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/examples/pom.xml b/examples/pom.xml index 7129efc291b..837af65f924 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml org.eclipse.jetty.examples diff --git a/jetty-annotations/pom.xml b/jetty-annotations/pom.xml index c8607bc8dca..863811e3fba 100644 --- a/jetty-annotations/pom.xml +++ b/jetty-annotations/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-annotations diff --git a/jetty-ant/pom.xml b/jetty-ant/pom.xml index be1d6f2a7f9..9b738409aba 100644 --- a/jetty-ant/pom.xml +++ b/jetty-ant/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-ant diff --git a/jetty-client/pom.xml b/jetty-client/pom.xml index 6dcb59f8a35..903aa471486 100644 --- a/jetty-client/pom.xml +++ b/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-continuation/pom.xml b/jetty-continuation/pom.xml index 5649a067acb..6bcc0a0b78a 100644 --- a/jetty-continuation/pom.xml +++ b/jetty-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-continuation diff --git a/jetty-deploy/pom.xml b/jetty-deploy/pom.xml index 9b3c5d81aac..80ddfc25bb2 100644 --- a/jetty-deploy/pom.xml +++ b/jetty-deploy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-deploy diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml index c5b3fcde1c8..238b8d0a732 100644 --- a/jetty-distribution/pom.xml +++ b/jetty-distribution/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 jetty-distribution Jetty :: Distribution Assemblies diff --git a/jetty-http-spi/pom.xml b/jetty-http-spi/pom.xml index 311b3443573..39530fe7e2c 100644 --- a/jetty-http-spi/pom.xml +++ b/jetty-http-spi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-http-spi diff --git a/jetty-http/pom.xml b/jetty-http/pom.xml index 498fa814b53..33e9fa282c5 100644 --- a/jetty-http/pom.xml +++ b/jetty-http/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-http diff --git a/jetty-io/pom.xml b/jetty-io/pom.xml index 94a258c5431..3b60eb813af 100644 --- a/jetty-io/pom.xml +++ b/jetty-io/pom.xml @@ -2,7 +2,7 @@ jetty-project org.eclipse.jetty - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-io diff --git a/jetty-jaas/pom.xml b/jetty-jaas/pom.xml index f8798c9e4f2..7ddfae77e2f 100644 --- a/jetty-jaas/pom.xml +++ b/jetty-jaas/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-jaas diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index 1365cc3e3b6..70fcadaca2c 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-jaspi diff --git a/jetty-jmx/pom.xml b/jetty-jmx/pom.xml index 19a611f43c7..884725046f4 100644 --- a/jetty-jmx/pom.xml +++ b/jetty-jmx/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-jmx diff --git a/jetty-jndi/pom.xml b/jetty-jndi/pom.xml index ae6e34a5be9..6a7de9c5adc 100644 --- a/jetty-jndi/pom.xml +++ b/jetty-jndi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-jndi diff --git a/jetty-jsp/pom.xml b/jetty-jsp/pom.xml index 8b4ed8c23b3..a5a3a1014ba 100644 --- a/jetty-jsp/pom.xml +++ b/jetty-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-jsp diff --git a/jetty-jspc-maven-plugin/pom.xml b/jetty-jspc-maven-plugin/pom.xml index ebc790b6484..a59172f1d27 100644 --- a/jetty-jspc-maven-plugin/pom.xml +++ b/jetty-jspc-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-jspc-maven-plugin diff --git a/jetty-maven-plugin/pom.xml b/jetty-maven-plugin/pom.xml index a84a46c62af..806a2f16b23 100644 --- a/jetty-maven-plugin/pom.xml +++ b/jetty-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-maven-plugin diff --git a/jetty-monitor/pom.xml b/jetty-monitor/pom.xml index cd92e4a5b51..0e8ae08fcfe 100644 --- a/jetty-monitor/pom.xml +++ b/jetty-monitor/pom.xml @@ -19,7 +19,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-monitor diff --git a/jetty-nosql/pom.xml b/jetty-nosql/pom.xml index d53a9b72d93..1b2fd586941 100644 --- a/jetty-nosql/pom.xml +++ b/jetty-nosql/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-nosql diff --git a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml index 7071fcced56..353caa1338f 100644 --- a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-osgi-boot-jsp diff --git a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml index 6fc524b9cf8..7d21b05fdfa 100644 --- a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot/pom.xml b/jetty-osgi/jetty-osgi-boot/pom.xml index 987ab06b168..bcdb99f4281 100644 --- a/jetty-osgi/jetty-osgi-boot/pom.xml +++ b/jetty-osgi/jetty-osgi-boot/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-osgi-boot diff --git a/jetty-osgi/jetty-osgi-httpservice/pom.xml b/jetty-osgi/jetty-osgi-httpservice/pom.xml index e2fad62601d..7a7638592d1 100644 --- a/jetty-osgi/jetty-osgi-httpservice/pom.xml +++ b/jetty-osgi/jetty-osgi-httpservice/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-httpservice diff --git a/jetty-osgi/jetty-osgi-npn/pom.xml b/jetty-osgi/jetty-osgi-npn/pom.xml index 955398222ac..dd85973286a 100644 --- a/jetty-osgi/jetty-osgi-npn/pom.xml +++ b/jetty-osgi/jetty-osgi-npn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-osgi-npn diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index 1a11fa2f879..0c2430c4516 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 org.eclipse.jetty.osgi jetty-osgi-project diff --git a/jetty-osgi/test-jetty-osgi-context/pom.xml b/jetty-osgi/test-jetty-osgi-context/pom.xml index 4e325726cf8..5bc35639f2a 100644 --- a/jetty-osgi/test-jetty-osgi-context/pom.xml +++ b/jetty-osgi/test-jetty-osgi-context/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 test-jetty-osgi-context diff --git a/jetty-osgi/test-jetty-osgi-webapp/pom.xml b/jetty-osgi/test-jetty-osgi-webapp/pom.xml index 05dc5387ede..edad20acf41 100644 --- a/jetty-osgi/test-jetty-osgi-webapp/pom.xml +++ b/jetty-osgi/test-jetty-osgi-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index 3e9f005732e..e3e561ef421 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/jetty-plus/pom.xml b/jetty-plus/pom.xml index 39f1ba02831..5f2d64f38fd 100644 --- a/jetty-plus/pom.xml +++ b/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-plus diff --git a/jetty-proxy/pom.xml b/jetty-proxy/pom.xml index ce1ffdd8f15..b5edf6fe0a1 100644 --- a/jetty-proxy/pom.xml +++ b/jetty-proxy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-proxy diff --git a/jetty-rewrite/pom.xml b/jetty-rewrite/pom.xml index 5dd0b0dca26..ce7255698cf 100644 --- a/jetty-rewrite/pom.xml +++ b/jetty-rewrite/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-rewrite diff --git a/jetty-runner/pom.xml b/jetty-runner/pom.xml index b16788e11b3..381ed9b94ec 100644 --- a/jetty-runner/pom.xml +++ b/jetty-runner/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 org.eclipse.jetty diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index 361a7d1d1ea..be3970aeaee 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-security diff --git a/jetty-server/pom.xml b/jetty-server/pom.xml index 7a70a8a01b7..f0537fd8708 100644 --- a/jetty-server/pom.xml +++ b/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-server diff --git a/jetty-servlet/pom.xml b/jetty-servlet/pom.xml index 73a61f95d60..5573c096a56 100644 --- a/jetty-servlet/pom.xml +++ b/jetty-servlet/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-servlet diff --git a/jetty-servlets/pom.xml b/jetty-servlets/pom.xml index 16eb475f0f3..c96a06a7aee 100644 --- a/jetty-servlets/pom.xml +++ b/jetty-servlets/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-servlets diff --git a/jetty-spdy/pom.xml b/jetty-spdy/pom.xml index a271497cc66..af0fd782de3 100644 --- a/jetty-spdy/pom.xml +++ b/jetty-spdy/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-spdy/spdy-client/pom.xml b/jetty-spdy/spdy-client/pom.xml index 60d132e70eb..66d174d095a 100644 --- a/jetty-spdy/spdy-client/pom.xml +++ b/jetty-spdy/spdy-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-spdy/spdy-core/pom.xml b/jetty-spdy/spdy-core/pom.xml index d3d5b95b69e..f1aad48a047 100644 --- a/jetty-spdy/spdy-core/pom.xml +++ b/jetty-spdy/spdy-core/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-spdy/spdy-example-webapp/pom.xml b/jetty-spdy/spdy-example-webapp/pom.xml index 7f192eb8007..638b5b174ea 100644 --- a/jetty-spdy/spdy-example-webapp/pom.xml +++ b/jetty-spdy/spdy-example-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 spdy-example-webapp diff --git a/jetty-spdy/spdy-http-client-transport/pom.xml b/jetty-spdy/spdy-http-client-transport/pom.xml index ab5bc313256..050a8007d6b 100644 --- a/jetty-spdy/spdy-http-client-transport/pom.xml +++ b/jetty-spdy/spdy-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-spdy/spdy-http-common/pom.xml b/jetty-spdy/spdy-http-common/pom.xml index 1012f015616..e78b68525cd 100644 --- a/jetty-spdy/spdy-http-common/pom.xml +++ b/jetty-spdy/spdy-http-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-spdy/spdy-http-server/pom.xml b/jetty-spdy/spdy-http-server/pom.xml index 8dc548f5c8b..be50daac199 100644 --- a/jetty-spdy/spdy-http-server/pom.xml +++ b/jetty-spdy/spdy-http-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 spdy-http-server diff --git a/jetty-spdy/spdy-server/pom.xml b/jetty-spdy/spdy-server/pom.xml index 9a0158f5ffe..bc6e898ef19 100644 --- a/jetty-spdy/spdy-server/pom.xml +++ b/jetty-spdy/spdy-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-spring/pom.xml b/jetty-spring/pom.xml index 9987f89383a..f6462743ba2 100644 --- a/jetty-spring/pom.xml +++ b/jetty-spring/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-spring diff --git a/jetty-start/pom.xml b/jetty-start/pom.xml index 735d2ae6a60..23e80213527 100644 --- a/jetty-start/pom.xml +++ b/jetty-start/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-start diff --git a/jetty-util-ajax/pom.xml b/jetty-util-ajax/pom.xml index 4170efd8cd7..8e65b7bff45 100644 --- a/jetty-util-ajax/pom.xml +++ b/jetty-util-ajax/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-util-ajax diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index d6fe544d1f5..cb3b4f4992c 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-util diff --git a/jetty-webapp/pom.xml b/jetty-webapp/pom.xml index 3e094eacd90..25c6a3ec245 100644 --- a/jetty-webapp/pom.xml +++ b/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-webapp diff --git a/jetty-websocket/javax-websocket-client-impl/pom.xml b/jetty-websocket/javax-websocket-client-impl/pom.xml index feb9397c879..0f92b73e697 100644 --- a/jetty-websocket/javax-websocket-client-impl/pom.xml +++ b/jetty-websocket/javax-websocket-client-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-websocket/javax-websocket-server-impl/pom.xml b/jetty-websocket/javax-websocket-server-impl/pom.xml index 0f538dd0cf3..224aeda4bc3 100644 --- a/jetty-websocket/javax-websocket-server-impl/pom.xml +++ b/jetty-websocket/javax-websocket-server-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-websocket/pom.xml b/jetty-websocket/pom.xml index 74d74edad90..eddce85f32a 100644 --- a/jetty-websocket/pom.xml +++ b/jetty-websocket/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-websocket/websocket-api/pom.xml b/jetty-websocket/websocket-api/pom.xml index 7d8f981aa97..043a3c56500 100644 --- a/jetty-websocket/websocket-api/pom.xml +++ b/jetty-websocket/websocket-api/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-websocket/websocket-client/pom.xml b/jetty-websocket/websocket-client/pom.xml index dea9851fb6a..514e234b655 100644 --- a/jetty-websocket/websocket-client/pom.xml +++ b/jetty-websocket/websocket-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-websocket/websocket-common/pom.xml b/jetty-websocket/websocket-common/pom.xml index f3d69bff254..c029badc4f5 100644 --- a/jetty-websocket/websocket-common/pom.xml +++ b/jetty-websocket/websocket-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-websocket/websocket-server/pom.xml b/jetty-websocket/websocket-server/pom.xml index 88e79fef74d..35b40abb83d 100644 --- a/jetty-websocket/websocket-server/pom.xml +++ b/jetty-websocket/websocket-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-websocket/websocket-servlet/pom.xml b/jetty-websocket/websocket-servlet/pom.xml index 348043f655c..f58f905bfdd 100644 --- a/jetty-websocket/websocket-servlet/pom.xml +++ b/jetty-websocket/websocket-servlet/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 diff --git a/jetty-xml/pom.xml b/jetty-xml/pom.xml index 3c0d931c230..125a360c673 100644 --- a/jetty-xml/pom.xml +++ b/jetty-xml/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 jetty-xml diff --git a/pom.xml b/pom.xml index fad193290c2..ef96cb5f501 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 21 jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 Jetty :: Project http://www.eclipse.org/jetty pom diff --git a/tests/pom.xml b/tests/pom.xml index b181c80926e..c4ab5e6dd49 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml org.eclipse.jetty.tests diff --git a/tests/test-continuation/pom.xml b/tests/test-continuation/pom.xml index c43155aee3a..3d093bfc2bb 100644 --- a/tests/test-continuation/pom.xml +++ b/tests/test-continuation/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/tests/test-integration/pom.xml b/tests/test-integration/pom.xml index fe0139232a5..87882b35b76 100644 --- a/tests/test-integration/pom.xml +++ b/tests/test-integration/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 4.0.0 test-integration diff --git a/tests/test-loginservice/pom.xml b/tests/test-loginservice/pom.xml index e305d0b3b37..eee8acb8cd3 100644 --- a/tests/test-loginservice/pom.xml +++ b/tests/test-loginservice/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-loginservice Jetty Tests :: Login Service diff --git a/tests/test-sessions/pom.xml b/tests/test-sessions/pom.xml index abc98640276..0d417ef9843 100644 --- a/tests/test-sessions/pom.xml +++ b/tests/test-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-sessions-parent Jetty Tests :: Sessions :: Parent diff --git a/tests/test-sessions/test-hash-sessions/pom.xml b/tests/test-sessions/test-hash-sessions/pom.xml index a1d38dddf2b..73cac9246ce 100644 --- a/tests/test-sessions/test-hash-sessions/pom.xml +++ b/tests/test-sessions/test-hash-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-hash-sessions Jetty Tests :: Sessions :: Hash diff --git a/tests/test-sessions/test-jdbc-sessions/pom.xml b/tests/test-sessions/test-jdbc-sessions/pom.xml index 0089c81ec81..0817c1707f3 100644 --- a/tests/test-sessions/test-jdbc-sessions/pom.xml +++ b/tests/test-sessions/test-jdbc-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-jdbc-sessions Jetty Tests :: Sessions :: JDBC diff --git a/tests/test-sessions/test-sessions-common/pom.xml b/tests/test-sessions/test-sessions-common/pom.xml index fe687e58bb1..f57dcbfbc12 100644 --- a/tests/test-sessions/test-sessions-common/pom.xml +++ b/tests/test-sessions/test-sessions-common/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-sessions-common Jetty Tests :: Sessions :: Common diff --git a/tests/test-webapps/pom.xml b/tests/test-webapps/pom.xml index 23be291954b..77e4094f963 100644 --- a/tests/test-webapps/pom.xml +++ b/tests/test-webapps/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml test-webapps-parent diff --git a/tests/test-webapps/test-jaas-webapp/pom.xml b/tests/test-webapps/test-jaas-webapp/pom.xml index 70e5eb4a389..a4532d29074 100644 --- a/tests/test-webapps/test-jaas-webapp/pom.xml +++ b/tests/test-webapps/test-jaas-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-jaas-webapp Jetty Tests :: WebApp :: JAAS diff --git a/tests/test-webapps/test-jetty-webapp/pom.xml b/tests/test-webapps/test-jetty-webapp/pom.xml index faac812a27b..78183ed78d1 100644 --- a/tests/test-webapps/test-jetty-webapp/pom.xml +++ b/tests/test-webapps/test-jetty-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-jndi-webapp/pom.xml b/tests/test-webapps/test-jndi-webapp/pom.xml index 9a24b727dfb..119fa451822 100644 --- a/tests/test-webapps/test-jndi-webapp/pom.xml +++ b/tests/test-webapps/test-jndi-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-jndi-webapp Jetty Tests :: WebApp :: JNDI diff --git a/tests/test-webapps/test-mock-resources/pom.xml b/tests/test-webapps/test-mock-resources/pom.xml index f7465a6803f..4862ad18d80 100644 --- a/tests/test-webapps/test-mock-resources/pom.xml +++ b/tests/test-webapps/test-mock-resources/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 Jetty Tests :: WebApp :: Mock Resources test-mock-resources diff --git a/tests/test-webapps/test-proxy-webapp/pom.xml b/tests/test-webapps/test-proxy-webapp/pom.xml index b4ecc1b48a4..8fca97af606 100644 --- a/tests/test-webapps/test-proxy-webapp/pom.xml +++ b/tests/test-webapps/test-proxy-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-servlet-spec/pom.xml b/tests/test-webapps/test-servlet-spec/pom.xml index 523e87b4d73..7d511bb07d6 100644 --- a/tests/test-webapps/test-servlet-spec/pom.xml +++ b/tests/test-webapps/test-servlet-spec/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-servlet-spec-parent Jetty Tests :: Spec Test WebApp :: Parent diff --git a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml index 38c6da051b4..d339282f7df 100644 --- a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-container-initializer jar diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml index 2f9e5ce1c98..2812202fe87 100644 --- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 Jetty Tests :: Webapps :: Spec Webapp test-spec-webapp diff --git a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml index 87d81b391ab..0a2cbcf77b5 100644 --- a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 Jetty Tests :: WebApp :: Servlet Spec :: Fragment Jar org.eclipse.jetty.tests diff --git a/tests/test-webapps/test-webapp-rfc2616/pom.xml b/tests/test-webapps/test-webapp-rfc2616/pom.xml index 281993d4110..a0393742e9f 100644 --- a/tests/test-webapps/test-webapp-rfc2616/pom.xml +++ b/tests/test-webapps/test-webapp-rfc2616/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3-SNAPSHOT + 9.1.3.v20140225 test-webapp-rfc2616 Jetty Tests :: WebApp :: RFC2616 From 5a487901ab6ea543ed9dad389044b779fe2fea53 Mon Sep 17 00:00:00 2001 From: Jesse McConnell Date: Tue, 25 Feb 2014 14:54:17 -0600 Subject: [PATCH 003/114] [maven-release-plugin] prepare for next development iteration --- aggregates/jetty-all/pom.xml | 2 +- examples/async-rest/async-rest-jar/pom.xml | 2 +- examples/async-rest/async-rest-webapp/pom.xml | 2 +- examples/async-rest/pom.xml | 2 +- examples/embedded/pom.xml | 2 +- examples/pom.xml | 2 +- jetty-annotations/pom.xml | 2 +- jetty-ant/pom.xml | 2 +- jetty-client/pom.xml | 2 +- jetty-continuation/pom.xml | 2 +- jetty-deploy/pom.xml | 2 +- jetty-distribution/pom.xml | 2 +- jetty-http-spi/pom.xml | 2 +- jetty-http/pom.xml | 2 +- jetty-io/pom.xml | 2 +- jetty-jaas/pom.xml | 2 +- jetty-jaspi/pom.xml | 2 +- jetty-jmx/pom.xml | 2 +- jetty-jndi/pom.xml | 2 +- jetty-jsp/pom.xml | 2 +- jetty-jspc-maven-plugin/pom.xml | 2 +- jetty-maven-plugin/pom.xml | 2 +- jetty-monitor/pom.xml | 2 +- jetty-nosql/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-jsp/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-warurl/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot/pom.xml | 2 +- jetty-osgi/jetty-osgi-httpservice/pom.xml | 2 +- jetty-osgi/jetty-osgi-npn/pom.xml | 2 +- jetty-osgi/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-context/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-webapp/pom.xml | 2 +- jetty-osgi/test-jetty-osgi/pom.xml | 2 +- jetty-plus/pom.xml | 2 +- jetty-proxy/pom.xml | 2 +- jetty-rewrite/pom.xml | 2 +- jetty-runner/pom.xml | 2 +- jetty-security/pom.xml | 2 +- jetty-server/pom.xml | 2 +- jetty-servlet/pom.xml | 2 +- jetty-servlets/pom.xml | 2 +- jetty-spdy/pom.xml | 2 +- jetty-spdy/spdy-client/pom.xml | 2 +- jetty-spdy/spdy-core/pom.xml | 2 +- jetty-spdy/spdy-example-webapp/pom.xml | 2 +- jetty-spdy/spdy-http-client-transport/pom.xml | 2 +- jetty-spdy/spdy-http-common/pom.xml | 2 +- jetty-spdy/spdy-http-server/pom.xml | 2 +- jetty-spdy/spdy-server/pom.xml | 2 +- jetty-spring/pom.xml | 2 +- jetty-start/pom.xml | 2 +- jetty-util-ajax/pom.xml | 2 +- jetty-util/pom.xml | 2 +- jetty-webapp/pom.xml | 2 +- jetty-websocket/javax-websocket-client-impl/pom.xml | 2 +- jetty-websocket/javax-websocket-server-impl/pom.xml | 2 +- jetty-websocket/pom.xml | 2 +- jetty-websocket/websocket-api/pom.xml | 2 +- jetty-websocket/websocket-client/pom.xml | 2 +- jetty-websocket/websocket-common/pom.xml | 2 +- jetty-websocket/websocket-server/pom.xml | 2 +- jetty-websocket/websocket-servlet/pom.xml | 2 +- jetty-xml/pom.xml | 2 +- pom.xml | 2 +- tests/pom.xml | 2 +- tests/test-continuation/pom.xml | 2 +- tests/test-integration/pom.xml | 2 +- tests/test-loginservice/pom.xml | 2 +- tests/test-sessions/pom.xml | 2 +- tests/test-sessions/test-hash-sessions/pom.xml | 2 +- tests/test-sessions/test-jdbc-sessions/pom.xml | 2 +- tests/test-sessions/test-sessions-common/pom.xml | 2 +- tests/test-webapps/pom.xml | 2 +- tests/test-webapps/test-jaas-webapp/pom.xml | 2 +- tests/test-webapps/test-jetty-webapp/pom.xml | 2 +- tests/test-webapps/test-jndi-webapp/pom.xml | 2 +- tests/test-webapps/test-mock-resources/pom.xml | 2 +- tests/test-webapps/test-proxy-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/pom.xml | 2 +- .../test-servlet-spec/test-container-initializer/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml | 2 +- tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml | 2 +- tests/test-webapps/test-webapp-rfc2616/pom.xml | 2 +- 83 files changed, 83 insertions(+), 83 deletions(-) diff --git a/aggregates/jetty-all/pom.xml b/aggregates/jetty-all/pom.xml index 7aadb75c672..916ec8c2c21 100644 --- a/aggregates/jetty-all/pom.xml +++ b/aggregates/jetty-all/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/examples/async-rest/async-rest-jar/pom.xml b/examples/async-rest/async-rest-jar/pom.xml index e702209d207..71ab507a1aa 100644 --- a/examples/async-rest/async-rest-jar/pom.xml +++ b/examples/async-rest/async-rest-jar/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/async-rest-webapp/pom.xml b/examples/async-rest/async-rest-webapp/pom.xml index c90669cf46d..2a626464e0f 100644 --- a/examples/async-rest/async-rest-webapp/pom.xml +++ b/examples/async-rest/async-rest-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/examples/async-rest/pom.xml b/examples/async-rest/pom.xml index 4e6699ae825..f45d90e997c 100644 --- a/examples/async-rest/pom.xml +++ b/examples/async-rest/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/examples/embedded/pom.xml b/examples/embedded/pom.xml index e3ecc0b2dfb..f6045650879 100644 --- a/examples/embedded/pom.xml +++ b/examples/embedded/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.examples examples-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/examples/pom.xml b/examples/pom.xml index 837af65f924..d2856c216fc 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml org.eclipse.jetty.examples diff --git a/jetty-annotations/pom.xml b/jetty-annotations/pom.xml index 863811e3fba..efaba6abb4b 100644 --- a/jetty-annotations/pom.xml +++ b/jetty-annotations/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-annotations diff --git a/jetty-ant/pom.xml b/jetty-ant/pom.xml index 9b738409aba..c5ae4795a72 100644 --- a/jetty-ant/pom.xml +++ b/jetty-ant/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-ant diff --git a/jetty-client/pom.xml b/jetty-client/pom.xml index 903aa471486..6332c066d41 100644 --- a/jetty-client/pom.xml +++ b/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-continuation/pom.xml b/jetty-continuation/pom.xml index 6bcc0a0b78a..c5d6fe37ef0 100644 --- a/jetty-continuation/pom.xml +++ b/jetty-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-continuation diff --git a/jetty-deploy/pom.xml b/jetty-deploy/pom.xml index 80ddfc25bb2..c945c292631 100644 --- a/jetty-deploy/pom.xml +++ b/jetty-deploy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-deploy diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml index 238b8d0a732..77f46388ba2 100644 --- a/jetty-distribution/pom.xml +++ b/jetty-distribution/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT jetty-distribution Jetty :: Distribution Assemblies diff --git a/jetty-http-spi/pom.xml b/jetty-http-spi/pom.xml index 39530fe7e2c..ea46cb7d1a9 100644 --- a/jetty-http-spi/pom.xml +++ b/jetty-http-spi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-http-spi diff --git a/jetty-http/pom.xml b/jetty-http/pom.xml index 33e9fa282c5..84f6069bbf9 100644 --- a/jetty-http/pom.xml +++ b/jetty-http/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-http diff --git a/jetty-io/pom.xml b/jetty-io/pom.xml index 3b60eb813af..e21f1e0e5a4 100644 --- a/jetty-io/pom.xml +++ b/jetty-io/pom.xml @@ -2,7 +2,7 @@ jetty-project org.eclipse.jetty - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-io diff --git a/jetty-jaas/pom.xml b/jetty-jaas/pom.xml index 7ddfae77e2f..a03618bf51d 100644 --- a/jetty-jaas/pom.xml +++ b/jetty-jaas/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-jaas diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index 70fcadaca2c..9f72793c877 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-jaspi diff --git a/jetty-jmx/pom.xml b/jetty-jmx/pom.xml index 884725046f4..e19a648c421 100644 --- a/jetty-jmx/pom.xml +++ b/jetty-jmx/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-jmx diff --git a/jetty-jndi/pom.xml b/jetty-jndi/pom.xml index 6a7de9c5adc..a56d9581947 100644 --- a/jetty-jndi/pom.xml +++ b/jetty-jndi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-jndi diff --git a/jetty-jsp/pom.xml b/jetty-jsp/pom.xml index a5a3a1014ba..70d3bbc4cac 100644 --- a/jetty-jsp/pom.xml +++ b/jetty-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-jsp diff --git a/jetty-jspc-maven-plugin/pom.xml b/jetty-jspc-maven-plugin/pom.xml index a59172f1d27..2f34f4da5b5 100644 --- a/jetty-jspc-maven-plugin/pom.xml +++ b/jetty-jspc-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-jspc-maven-plugin diff --git a/jetty-maven-plugin/pom.xml b/jetty-maven-plugin/pom.xml index 806a2f16b23..aed095f49a4 100644 --- a/jetty-maven-plugin/pom.xml +++ b/jetty-maven-plugin/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-maven-plugin diff --git a/jetty-monitor/pom.xml b/jetty-monitor/pom.xml index 0e8ae08fcfe..d8092919469 100644 --- a/jetty-monitor/pom.xml +++ b/jetty-monitor/pom.xml @@ -19,7 +19,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-monitor diff --git a/jetty-nosql/pom.xml b/jetty-nosql/pom.xml index 1b2fd586941..3eb4f2282bf 100644 --- a/jetty-nosql/pom.xml +++ b/jetty-nosql/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-nosql diff --git a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml index 353caa1338f..4cdcbbad41c 100644 --- a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-osgi-boot-jsp diff --git a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml index 7d21b05fdfa..67c56041ac8 100644 --- a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot/pom.xml b/jetty-osgi/jetty-osgi-boot/pom.xml index bcdb99f4281..ffd2d9ee3e6 100644 --- a/jetty-osgi/jetty-osgi-boot/pom.xml +++ b/jetty-osgi/jetty-osgi-boot/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-osgi-boot diff --git a/jetty-osgi/jetty-osgi-httpservice/pom.xml b/jetty-osgi/jetty-osgi-httpservice/pom.xml index 7a7638592d1..5c97b3931a5 100644 --- a/jetty-osgi/jetty-osgi-httpservice/pom.xml +++ b/jetty-osgi/jetty-osgi-httpservice/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-httpservice diff --git a/jetty-osgi/jetty-osgi-npn/pom.xml b/jetty-osgi/jetty-osgi-npn/pom.xml index dd85973286a..b05ac1dc90d 100644 --- a/jetty-osgi/jetty-osgi-npn/pom.xml +++ b/jetty-osgi/jetty-osgi-npn/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-osgi-npn diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index 0c2430c4516..7e5db89ed43 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT org.eclipse.jetty.osgi jetty-osgi-project diff --git a/jetty-osgi/test-jetty-osgi-context/pom.xml b/jetty-osgi/test-jetty-osgi-context/pom.xml index 5bc35639f2a..85a0c051075 100644 --- a/jetty-osgi/test-jetty-osgi-context/pom.xml +++ b/jetty-osgi/test-jetty-osgi-context/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 test-jetty-osgi-context diff --git a/jetty-osgi/test-jetty-osgi-webapp/pom.xml b/jetty-osgi/test-jetty-osgi-webapp/pom.xml index edad20acf41..2e4a0c731ce 100644 --- a/jetty-osgi/test-jetty-osgi-webapp/pom.xml +++ b/jetty-osgi/test-jetty-osgi-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index e3e561ef421..bda92cff54d 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-plus/pom.xml b/jetty-plus/pom.xml index 5f2d64f38fd..cc1e1049530 100644 --- a/jetty-plus/pom.xml +++ b/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-plus diff --git a/jetty-proxy/pom.xml b/jetty-proxy/pom.xml index b5edf6fe0a1..a653de21071 100644 --- a/jetty-proxy/pom.xml +++ b/jetty-proxy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-proxy diff --git a/jetty-rewrite/pom.xml b/jetty-rewrite/pom.xml index ce7255698cf..b97a7f1424c 100644 --- a/jetty-rewrite/pom.xml +++ b/jetty-rewrite/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-rewrite diff --git a/jetty-runner/pom.xml b/jetty-runner/pom.xml index 381ed9b94ec..5326d59f7c4 100644 --- a/jetty-runner/pom.xml +++ b/jetty-runner/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 org.eclipse.jetty diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index be3970aeaee..cd3efd90d73 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-security diff --git a/jetty-server/pom.xml b/jetty-server/pom.xml index f0537fd8708..e0d5cb16892 100644 --- a/jetty-server/pom.xml +++ b/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-server diff --git a/jetty-servlet/pom.xml b/jetty-servlet/pom.xml index 5573c096a56..b516d5f19a0 100644 --- a/jetty-servlet/pom.xml +++ b/jetty-servlet/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-servlet diff --git a/jetty-servlets/pom.xml b/jetty-servlets/pom.xml index c96a06a7aee..474eaea7efc 100644 --- a/jetty-servlets/pom.xml +++ b/jetty-servlets/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-servlets diff --git a/jetty-spdy/pom.xml b/jetty-spdy/pom.xml index af0fd782de3..9510a4d49eb 100644 --- a/jetty-spdy/pom.xml +++ b/jetty-spdy/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-client/pom.xml b/jetty-spdy/spdy-client/pom.xml index 66d174d095a..4ec9956aa00 100644 --- a/jetty-spdy/spdy-client/pom.xml +++ b/jetty-spdy/spdy-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-core/pom.xml b/jetty-spdy/spdy-core/pom.xml index f1aad48a047..7718fe90bf9 100644 --- a/jetty-spdy/spdy-core/pom.xml +++ b/jetty-spdy/spdy-core/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-example-webapp/pom.xml b/jetty-spdy/spdy-example-webapp/pom.xml index 638b5b174ea..e42cfe0e796 100644 --- a/jetty-spdy/spdy-example-webapp/pom.xml +++ b/jetty-spdy/spdy-example-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 spdy-example-webapp diff --git a/jetty-spdy/spdy-http-client-transport/pom.xml b/jetty-spdy/spdy-http-client-transport/pom.xml index 050a8007d6b..eb4fef0c14e 100644 --- a/jetty-spdy/spdy-http-client-transport/pom.xml +++ b/jetty-spdy/spdy-http-client-transport/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-http-common/pom.xml b/jetty-spdy/spdy-http-common/pom.xml index e78b68525cd..b086759c2ed 100644 --- a/jetty-spdy/spdy-http-common/pom.xml +++ b/jetty-spdy/spdy-http-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-http-server/pom.xml b/jetty-spdy/spdy-http-server/pom.xml index be50daac199..4555f19235e 100644 --- a/jetty-spdy/spdy-http-server/pom.xml +++ b/jetty-spdy/spdy-http-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 spdy-http-server diff --git a/jetty-spdy/spdy-server/pom.xml b/jetty-spdy/spdy-server/pom.xml index bc6e898ef19..298cd8c2ae9 100644 --- a/jetty-spdy/spdy-server/pom.xml +++ b/jetty-spdy/spdy-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-spring/pom.xml b/jetty-spring/pom.xml index f6462743ba2..d20bd66cf24 100644 --- a/jetty-spring/pom.xml +++ b/jetty-spring/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-spring diff --git a/jetty-start/pom.xml b/jetty-start/pom.xml index 23e80213527..df27697dcad 100644 --- a/jetty-start/pom.xml +++ b/jetty-start/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-start diff --git a/jetty-util-ajax/pom.xml b/jetty-util-ajax/pom.xml index 8e65b7bff45..84f269b37b3 100644 --- a/jetty-util-ajax/pom.xml +++ b/jetty-util-ajax/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-util-ajax diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index cb3b4f4992c..fed41b600a3 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-util diff --git a/jetty-webapp/pom.xml b/jetty-webapp/pom.xml index 25c6a3ec245..7d4fc4d7862 100644 --- a/jetty-webapp/pom.xml +++ b/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-webapp diff --git a/jetty-websocket/javax-websocket-client-impl/pom.xml b/jetty-websocket/javax-websocket-client-impl/pom.xml index 0f92b73e697..19f903f36d0 100644 --- a/jetty-websocket/javax-websocket-client-impl/pom.xml +++ b/jetty-websocket/javax-websocket-client-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/javax-websocket-server-impl/pom.xml b/jetty-websocket/javax-websocket-server-impl/pom.xml index 224aeda4bc3..a1bfa5215a1 100644 --- a/jetty-websocket/javax-websocket-server-impl/pom.xml +++ b/jetty-websocket/javax-websocket-server-impl/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/pom.xml b/jetty-websocket/pom.xml index eddce85f32a..66808aad16a 100644 --- a/jetty-websocket/pom.xml +++ b/jetty-websocket/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-api/pom.xml b/jetty-websocket/websocket-api/pom.xml index 043a3c56500..db38a159000 100644 --- a/jetty-websocket/websocket-api/pom.xml +++ b/jetty-websocket/websocket-api/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-client/pom.xml b/jetty-websocket/websocket-client/pom.xml index 514e234b655..85ec7f50841 100644 --- a/jetty-websocket/websocket-client/pom.xml +++ b/jetty-websocket/websocket-client/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-common/pom.xml b/jetty-websocket/websocket-common/pom.xml index c029badc4f5..771cff3d642 100644 --- a/jetty-websocket/websocket-common/pom.xml +++ b/jetty-websocket/websocket-common/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-server/pom.xml b/jetty-websocket/websocket-server/pom.xml index 35b40abb83d..e05099b50ba 100644 --- a/jetty-websocket/websocket-server/pom.xml +++ b/jetty-websocket/websocket-server/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-websocket/websocket-servlet/pom.xml b/jetty-websocket/websocket-servlet/pom.xml index f58f905bfdd..d3e367a792a 100644 --- a/jetty-websocket/websocket-servlet/pom.xml +++ b/jetty-websocket/websocket-servlet/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.websocket websocket-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 diff --git a/jetty-xml/pom.xml b/jetty-xml/pom.xml index 125a360c673..93e116f0ddd 100644 --- a/jetty-xml/pom.xml +++ b/jetty-xml/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 jetty-xml diff --git a/pom.xml b/pom.xml index ef96cb5f501..53119cd8001 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 21 jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT Jetty :: Project http://www.eclipse.org/jetty pom diff --git a/tests/pom.xml b/tests/pom.xml index c4ab5e6dd49..6f29c90b349 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml org.eclipse.jetty.tests diff --git a/tests/test-continuation/pom.xml b/tests/test-continuation/pom.xml index 3d093bfc2bb..78a1c9310ab 100644 --- a/tests/test-continuation/pom.xml +++ b/tests/test-continuation/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-integration/pom.xml b/tests/test-integration/pom.xml index 87882b35b76..f4f899691e6 100644 --- a/tests/test-integration/pom.xml +++ b/tests/test-integration/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT 4.0.0 test-integration diff --git a/tests/test-loginservice/pom.xml b/tests/test-loginservice/pom.xml index eee8acb8cd3..665b4d9f3e4 100644 --- a/tests/test-loginservice/pom.xml +++ b/tests/test-loginservice/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-loginservice Jetty Tests :: Login Service diff --git a/tests/test-sessions/pom.xml b/tests/test-sessions/pom.xml index 0d417ef9843..a8fe0629ad8 100644 --- a/tests/test-sessions/pom.xml +++ b/tests/test-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-sessions-parent Jetty Tests :: Sessions :: Parent diff --git a/tests/test-sessions/test-hash-sessions/pom.xml b/tests/test-sessions/test-hash-sessions/pom.xml index 73cac9246ce..590dd5f032b 100644 --- a/tests/test-sessions/test-hash-sessions/pom.xml +++ b/tests/test-sessions/test-hash-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-hash-sessions Jetty Tests :: Sessions :: Hash diff --git a/tests/test-sessions/test-jdbc-sessions/pom.xml b/tests/test-sessions/test-jdbc-sessions/pom.xml index 0817c1707f3..d3f7f4205a2 100644 --- a/tests/test-sessions/test-jdbc-sessions/pom.xml +++ b/tests/test-sessions/test-jdbc-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-jdbc-sessions Jetty Tests :: Sessions :: JDBC diff --git a/tests/test-sessions/test-sessions-common/pom.xml b/tests/test-sessions/test-sessions-common/pom.xml index f57dcbfbc12..075ca379936 100644 --- a/tests/test-sessions/test-sessions-common/pom.xml +++ b/tests/test-sessions/test-sessions-common/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-sessions-common Jetty Tests :: Sessions :: Common diff --git a/tests/test-webapps/pom.xml b/tests/test-webapps/pom.xml index 77e4094f963..7de86e959bf 100644 --- a/tests/test-webapps/pom.xml +++ b/tests/test-webapps/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml test-webapps-parent diff --git a/tests/test-webapps/test-jaas-webapp/pom.xml b/tests/test-webapps/test-jaas-webapp/pom.xml index a4532d29074..fa985bb53c7 100644 --- a/tests/test-webapps/test-jaas-webapp/pom.xml +++ b/tests/test-webapps/test-jaas-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-jaas-webapp Jetty Tests :: WebApp :: JAAS diff --git a/tests/test-webapps/test-jetty-webapp/pom.xml b/tests/test-webapps/test-jetty-webapp/pom.xml index 78183ed78d1..87f2bd3eb01 100644 --- a/tests/test-webapps/test-jetty-webapp/pom.xml +++ b/tests/test-webapps/test-jetty-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-jndi-webapp/pom.xml b/tests/test-webapps/test-jndi-webapp/pom.xml index 119fa451822..5ebe875b306 100644 --- a/tests/test-webapps/test-jndi-webapp/pom.xml +++ b/tests/test-webapps/test-jndi-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-jndi-webapp Jetty Tests :: WebApp :: JNDI diff --git a/tests/test-webapps/test-mock-resources/pom.xml b/tests/test-webapps/test-mock-resources/pom.xml index 4862ad18d80..2db83010955 100644 --- a/tests/test-webapps/test-mock-resources/pom.xml +++ b/tests/test-webapps/test-mock-resources/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT Jetty Tests :: WebApp :: Mock Resources test-mock-resources diff --git a/tests/test-webapps/test-proxy-webapp/pom.xml b/tests/test-webapps/test-proxy-webapp/pom.xml index 8fca97af606..5f272646918 100644 --- a/tests/test-webapps/test-proxy-webapp/pom.xml +++ b/tests/test-webapps/test-proxy-webapp/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT ../pom.xml 4.0.0 diff --git a/tests/test-webapps/test-servlet-spec/pom.xml b/tests/test-webapps/test-servlet-spec/pom.xml index 7d511bb07d6..d6a72aea877 100644 --- a/tests/test-webapps/test-servlet-spec/pom.xml +++ b/tests/test-webapps/test-servlet-spec/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-servlet-spec-parent Jetty Tests :: Spec Test WebApp :: Parent diff --git a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml index d339282f7df..1ca34a0cfcc 100644 --- a/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-container-initializer jar diff --git a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml index 2812202fe87..8fa1d84bb22 100644 --- a/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT Jetty Tests :: Webapps :: Spec Webapp test-spec-webapp diff --git a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml index 0a2cbcf77b5..37d4b01afc2 100644 --- a/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml +++ b/tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.tests test-servlet-spec-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT Jetty Tests :: WebApp :: Servlet Spec :: Fragment Jar org.eclipse.jetty.tests diff --git a/tests/test-webapps/test-webapp-rfc2616/pom.xml b/tests/test-webapps/test-webapp-rfc2616/pom.xml index a0393742e9f..c1ead271a72 100644 --- a/tests/test-webapps/test-webapp-rfc2616/pom.xml +++ b/tests/test-webapps/test-webapp-rfc2616/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-webapps-parent - 9.1.3.v20140225 + 9.1.4-SNAPSHOT test-webapp-rfc2616 Jetty Tests :: WebApp :: RFC2616 From b3b669166f8692f58086bd54a476a195fb54effe Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Tue, 18 Mar 2014 16:15:08 +0100 Subject: [PATCH 004/114] Implemented ALPNServerConnection and refactored common code with NPN. --- .../eclipse/jetty/embedded/SpdyConnector.java | 2 +- .../eclipse/jetty/embedded/SpdyServer.java | 2 +- jetty-spdy/spdy-server/pom.xml | 6 + .../spdy/server/ALPNServerConnection.java | 76 ++++++++ .../server/ALPNServerConnectionFactory.java | 60 +++++++ .../spdy/server/NPNServerConnection.java | 115 +----------- .../server/NPNServerConnectionFactory.java | 87 ++-------- .../server/NegotiatingServerConnection.java | 163 ++++++++++++++++++ .../NegotiatingServerConnectionFactory.java | 103 +++++++++++ .../server/SPDYServerConnectionFactory.java | 29 +++- .../spdy/server/SPDYServerConnector.java | 27 ++- pom.xml | 1 + .../jetty/TestTransparentProxyServer.java | 2 +- 13 files changed, 469 insertions(+), 204 deletions(-) create mode 100644 jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnection.java create mode 100644 jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnectionFactory.java create mode 100644 jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnection.java create mode 100644 jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnectionFactory.java diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java index 542197be780..05115382c77 100644 --- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java +++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyConnector.java @@ -72,7 +72,7 @@ public class SpdyConnector new HTTPSPDYServerConnectionFactory(3,https_config,new ReferrerPushStrategy()); // NPN Factory - SPDYServerConnectionFactory.checkNPNAvailable(); + SPDYServerConnectionFactory.checkProtocolNegotiationAvailable(); NPNServerConnectionFactory npn = new NPNServerConnectionFactory(spdy3.getProtocol(),spdy2.getProtocol(),http.getDefaultProtocol()); npn.setDefaultProtocol(http.getDefaultProtocol()); diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java index 3ab394230da..a9dfdc488f4 100644 --- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java +++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/SpdyServer.java @@ -110,7 +110,7 @@ public class SpdyServer // Spdy Connector // Make sure that the required NPN implementations are available. - SPDYServerConnectionFactory.checkNPNAvailable(); + SPDYServerConnectionFactory.checkProtocolNegotiationAvailable(); // A ReferrerPushStrategy is being initialized. // See: http://www.eclipse.org/jetty/documentation/current/spdy-configuring-push.html for more details. diff --git a/jetty-spdy/spdy-server/pom.xml b/jetty-spdy/spdy-server/pom.xml index 298cd8c2ae9..1d3b0a76b96 100644 --- a/jetty-spdy/spdy-server/pom.xml +++ b/jetty-spdy/spdy-server/pom.xml @@ -91,6 +91,12 @@ ${npn.api.version} provided + + org.eclipse.jetty.alpn + alpn-api + ${alpn.api.version} + provided + diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnection.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnection.java new file mode 100644 index 00000000000..68c134bf6b3 --- /dev/null +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnection.java @@ -0,0 +1,76 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.util.Collections; +import java.util.List; +import javax.net.ssl.SSLEngine; + +import org.eclipse.jetty.alpn.ALPN; +import org.eclipse.jetty.io.EndPoint; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; + +public class ALPNServerConnection extends NegotiatingServerConnection implements ALPN.ServerProvider +{ + private static final Logger LOG = Log.getLogger(ALPNServerConnection.class); + + public ALPNServerConnection(Connector connector, EndPoint endPoint, SSLEngine engine, List protocols, String defaultProtocol) + { + super(connector, endPoint, engine, protocols, defaultProtocol); + ALPN.put(engine, this); + } + + @Override + public void unsupported() + { + select(Collections.emptyList()); + } + + @Override + public String select(List clientProtocols) + { + List serverProtocols = getProtocols(); + String negotiated = null; + for (String clientProtocol : clientProtocols) + { + if (serverProtocols.contains(clientProtocol)) + { + negotiated = clientProtocol; + break; + } + } + if (negotiated == null) + { + negotiated = getDefaultProtocol(); + } + LOG.debug("{} protocol selected {}", this, negotiated); + setProtocol(negotiated); + ALPN.remove(getSSLEngine()); + return negotiated; + } + + @Override + public void close() + { + ALPN.remove(getSSLEngine()); + super.close(); + } +} diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnectionFactory.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnectionFactory.java new file mode 100644 index 00000000000..a4b73c5393e --- /dev/null +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/ALPNServerConnectionFactory.java @@ -0,0 +1,60 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.util.List; +import javax.net.ssl.SSLEngine; + +import org.eclipse.jetty.alpn.ALPN; +import org.eclipse.jetty.io.AbstractConnection; +import org.eclipse.jetty.io.EndPoint; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.util.annotation.Name; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; + +public class ALPNServerConnectionFactory extends NegotiatingServerConnectionFactory +{ + private static final Logger LOG = Log.getLogger(ALPNServerConnectionFactory.class); + + public ALPNServerConnectionFactory(@Name("protocols") String... protocols) + { + super("alpn", protocols); + try + { + ClassLoader alpnClassLoader = ALPN.class.getClassLoader(); + if (alpnClassLoader != null) + { + LOG.warn("ALPN must be in the boot classloader, not in: " + alpnClassLoader); + throw new IllegalStateException("ALPN must be in the boot classloader"); + } + } + catch (Throwable x) + { + LOG.warn("ALPN not available", x); + throw new IllegalStateException("ALPN not available", x); + } + } + + @Override + protected AbstractConnection newServerConnection(Connector connector, EndPoint endPoint, SSLEngine engine, List protocols, String defaultProtocol) + { + return new ALPNServerConnection(connector, endPoint, engine, protocols, defaultProtocol); + } +} diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnection.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnection.java index b06bf0d75e4..b58a01e219c 100644 --- a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnection.java +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnection.java @@ -18,146 +18,49 @@ package org.eclipse.jetty.spdy.server; -import java.io.IOException; import java.util.List; - import javax.net.ssl.SSLEngine; -import javax.net.ssl.SSLEngineResult; -import org.eclipse.jetty.io.AbstractConnection; -import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.npn.NextProtoNego; -import org.eclipse.jetty.server.ConnectionFactory; import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.util.BufferUtil; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; -public class NPNServerConnection extends AbstractConnection implements NextProtoNego.ServerProvider +public class NPNServerConnection extends NegotiatingServerConnection implements NextProtoNego.ServerProvider { - private final Logger LOG = Log.getLogger(getClass()); - private final Connector connector; - private final SSLEngine engine; - private final List protocols; - private final String defaultProtocol; - private String nextProtocol; // No need to be volatile: it is modified and read by the same thread + private static final Logger LOG = Log.getLogger(NPNServerConnection.class); public NPNServerConnection(EndPoint endPoint, SSLEngine engine, Connector connector, List protocols, String defaultProtocol) { - super(endPoint, connector.getExecutor()); - this.connector = connector; - this.protocols = protocols; - this.defaultProtocol = defaultProtocol; - this.engine = engine; + super(connector, endPoint, engine, protocols, defaultProtocol); NextProtoNego.put(engine, this); } - @Override - public void onOpen() - { - super.onOpen(); - fillInterested(); - } - - @Override - public void onFillable() - { - int filled = fill(); - - if (filled == 0) - { - if (nextProtocol == null) - { - if (engine.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) - { - // Here the SSL handshake is finished, but while the client sent - // the NPN extension, the server application did not select the - // protocol; we need to close as the protocol cannot be negotiated. - LOG.debug("{} missing next protocol. SSLEngine: {}", this, engine); - close(); - } - else - { - // Here the SSL handshake is not finished yet but we filled 0 bytes, - // so we need to read more. - fillInterested(); - } - } - else - { - ConnectionFactory connectionFactory = connector.getConnectionFactory(nextProtocol); - if (connectionFactory == null) - { - LOG.debug("{} application selected protocol '{}', but no correspondent {} has been configured", - this, nextProtocol, ConnectionFactory.class.getName()); - close(); - } - else - { - EndPoint endPoint = getEndPoint(); - Connection oldConnection = endPoint.getConnection(); - Connection newConnection = connectionFactory.newConnection(connector, endPoint); - LOG.debug("{} switching from {} to {}", this, oldConnection, newConnection); - oldConnection.onClose(); - endPoint.setConnection(newConnection); - getEndPoint().getConnection().onOpen(); - } - } - } - else if (filled < 0) - { - // Something went bad, we need to close. - LOG.debug("{} closing on client close", this); - close(); - } - else - { - // Must never happen, since we fill using an empty buffer - throw new IllegalStateException(); - } - } - - private int fill() - { - try - { - return getEndPoint().fill(BufferUtil.EMPTY_BUFFER); - } - catch (IOException x) - { - LOG.debug(x); - close(); - return -1; - } - } - @Override public void unsupported() { - protocolSelected(defaultProtocol); + protocolSelected(getDefaultProtocol()); } @Override public List protocols() { - return protocols; + return getProtocols(); } @Override public void protocolSelected(String protocol) { LOG.debug("{} protocol selected {}", this, protocol); - nextProtocol = protocol != null ? protocol : defaultProtocol; - NextProtoNego.remove(engine); + setProtocol(protocol != null ? protocol : getDefaultProtocol()); + NextProtoNego.remove(getSSLEngine()); } @Override public void close() { - NextProtoNego.remove(engine); - EndPoint endPoint = getEndPoint(); - endPoint.shutdownOutput(); - endPoint.close(); + NextProtoNego.remove(getSSLEngine()); + super.close(); } } diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnectionFactory.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnectionFactory.java index db18ef2f408..f0e9e018961 100644 --- a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnectionFactory.java +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NPNServerConnectionFactory.java @@ -16,106 +16,45 @@ // ======================================================================== // - package org.eclipse.jetty.spdy.server; -import java.util.Arrays; -import java.util.Iterator; import java.util.List; - import javax.net.ssl.SSLEngine; -import org.eclipse.jetty.io.Connection; +import org.eclipse.jetty.io.AbstractConnection; import org.eclipse.jetty.io.EndPoint; -import org.eclipse.jetty.io.ssl.SslConnection; import org.eclipse.jetty.npn.NextProtoNego; -import org.eclipse.jetty.server.AbstractConnectionFactory; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.util.annotation.Name; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; -public class NPNServerConnectionFactory extends AbstractConnectionFactory +public class NPNServerConnectionFactory extends NegotiatingServerConnectionFactory { private static final Logger LOG = Log.getLogger(NPNServerConnectionFactory.class); - private final List _protocols; - private String _defaultProtocol; - /* ------------------------------------------------------------ */ - /** - * @param protocols List of supported protocols in priority order - */ - public NPNServerConnectionFactory(@Name("protocols")String... protocols) + public NPNServerConnectionFactory(@Name("protocols") String... protocols) { - super("npn"); - _protocols=Arrays.asList(protocols); - + super("npn", protocols); try { - if (NextProtoNego.class.getClassLoader()!=null) + ClassLoader npnClassLoader = NextProtoNego.class.getClassLoader(); + if (npnClassLoader != null) { - LOG.warn("NextProtoNego not from bootloader classloader: "+NextProtoNego.class.getClassLoader()); - throw new IllegalStateException("NextProtoNego not on bootloader"); + LOG.warn("NPN must be in the boot classloader, not in: " + npnClassLoader); + throw new IllegalStateException("NPN must be in the boot classloader"); } } - catch(Throwable th) + catch (Throwable x) { - LOG.warn("NextProtoNego not available: "+th); - throw new IllegalStateException("NextProtoNego not available",th); + LOG.warn("NPN not available: " + x); + throw new IllegalStateException("NPN not available", x); } } - public String getDefaultProtocol() - { - return _defaultProtocol; - } - - public void setDefaultProtocol(String defaultProtocol) - { - _defaultProtocol = defaultProtocol; - } - - public List getProtocols() - { - return _protocols; - } - @Override - public Connection newConnection(Connector connector, EndPoint endPoint) + protected AbstractConnection newServerConnection(Connector connector, EndPoint endPoint, SSLEngine engine, List protocols, String defaultProtocol) { - List protocols=_protocols; - if (protocols==null || protocols.size()==0) - { - protocols=connector.getProtocols(); - for (Iterator i=protocols.iterator();i.hasNext();) - { - String protocol=i.next(); - if (protocol.startsWith("SSL-")||protocol.equals("NPN")) - i.remove(); - } - } - - String dft=_defaultProtocol; - if (dft==null) - dft=_protocols.get(0); - - SSLEngine engine=null; - EndPoint ep=endPoint; - while(engine==null && ep!=null) - { - // TODO make more generic - if (ep instanceof SslConnection.DecryptedEndPoint) - engine=((SslConnection.DecryptedEndPoint)ep).getSslConnection().getSSLEngine(); - else - ep=null; - } - - return configure(new NPNServerConnection(endPoint, engine, connector,protocols,_defaultProtocol),connector,endPoint); - } - - @Override - public String toString() - { - return String.format("%s@%x{%s,%s,%s}",this.getClass().getSimpleName(),hashCode(),getProtocol(),getDefaultProtocol(),getProtocols()); + return new NPNServerConnection(endPoint, engine, connector, protocols, defaultProtocol); } } diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnection.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnection.java new file mode 100644 index 00000000000..01652df7c5d --- /dev/null +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnection.java @@ -0,0 +1,163 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.io.IOException; +import java.util.List; +import javax.net.ssl.SSLEngine; +import javax.net.ssl.SSLEngineResult; + +import org.eclipse.jetty.io.AbstractConnection; +import org.eclipse.jetty.io.Connection; +import org.eclipse.jetty.io.EndPoint; +import org.eclipse.jetty.server.ConnectionFactory; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.util.BufferUtil; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; + +public abstract class NegotiatingServerConnection extends AbstractConnection +{ + private static final Logger LOG = Log.getLogger(NegotiatingServerConnection.class); + + private final Connector connector; + private final SSLEngine engine; + private final List protocols; + private final String defaultProtocol; + private String protocol; // No need to be volatile: it is modified and read by the same thread + + public NegotiatingServerConnection(Connector connector, EndPoint endPoint, SSLEngine engine, List protocols, String defaultProtocol) + { + super(endPoint, connector.getExecutor()); + this.connector = connector; + this.protocols = protocols; + this.defaultProtocol = defaultProtocol; + this.engine = engine; + } + + protected List getProtocols() + { + return protocols; + } + + protected String getDefaultProtocol() + { + return defaultProtocol; + } + + protected SSLEngine getSSLEngine() + { + return engine; + } + + protected String getProtocol() + { + return protocol; + } + + protected void setProtocol(String protocol) + { + this.protocol = protocol; + } + + @Override + public void onOpen() + { + super.onOpen(); + fillInterested(); + } + + @Override + public void onFillable() + { + int filled = fill(); + + if (filled == 0) + { + if (protocol == null) + { + if (engine.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING) + { + // Here the SSL handshake is finished, but the protocol has not been negotiated. + LOG.debug("{} could not negotiate protocol, SSLEngine: {}", this, engine); + close(); + } + else + { + // Here the SSL handshake is not finished yet but we filled 0 bytes, + // so we need to read more. + fillInterested(); + } + } + else + { + ConnectionFactory connectionFactory = connector.getConnectionFactory(protocol); + if (connectionFactory == null) + { + LOG.debug("{} application selected protocol '{}', but no correspondent {} has been configured", + this, protocol, ConnectionFactory.class.getName()); + close(); + } + else + { + EndPoint endPoint = getEndPoint(); + Connection oldConnection = endPoint.getConnection(); + Connection newConnection = connectionFactory.newConnection(connector, endPoint); + LOG.debug("{} switching from {} to {}", this, oldConnection, newConnection); + oldConnection.onClose(); + endPoint.setConnection(newConnection); + getEndPoint().getConnection().onOpen(); + } + } + } + else if (filled < 0) + { + // Something went bad, we need to close. + LOG.debug("{} closing on client close", this); + close(); + } + else + { + // Must never happen, since we fill using an empty buffer + throw new IllegalStateException(); + } + } + + private int fill() + { + try + { + return getEndPoint().fill(BufferUtil.EMPTY_BUFFER); + } + catch (IOException x) + { + LOG.debug(x); + close(); + return -1; + } + } + + @Override + public void close() + { + // Gentler close for SSL. + getEndPoint().shutdownOutput(); + super.close(); + } +} diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnectionFactory.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnectionFactory.java new file mode 100644 index 00000000000..4ec3e9104b7 --- /dev/null +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/NegotiatingServerConnectionFactory.java @@ -0,0 +1,103 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import javax.net.ssl.SSLEngine; + +import org.eclipse.jetty.io.AbstractConnection; +import org.eclipse.jetty.io.Connection; +import org.eclipse.jetty.io.EndPoint; +import org.eclipse.jetty.io.ssl.SslConnection; +import org.eclipse.jetty.server.AbstractConnectionFactory; +import org.eclipse.jetty.server.Connector; + +public abstract class NegotiatingServerConnectionFactory extends AbstractConnectionFactory +{ + private final List protocols; + private String defaultProtocol; + + public NegotiatingServerConnectionFactory(String protocol, String... protocols) + { + super(protocol); + this.protocols = Arrays.asList(protocols); + } + + public String getDefaultProtocol() + { + return defaultProtocol; + } + + public void setDefaultProtocol(String defaultProtocol) + { + this.defaultProtocol = defaultProtocol; + } + + public List getProtocols() + { + return protocols; + } + + @Override + public Connection newConnection(Connector connector, EndPoint endPoint) + { + List protocols = this.protocols; + if (protocols.isEmpty()) + { + protocols = connector.getProtocols(); + Iterator i = protocols.iterator(); + while (i.hasNext()) + { + String protocol = i.next(); + String prefix = "ssl-"; + if (protocol.regionMatches(true, 0, prefix, 0, prefix.length()) || protocol.equalsIgnoreCase("alpn")) + { + i.remove(); + } + } + } + + String dft = defaultProtocol; + if (dft == null && !protocols.isEmpty()) + dft = protocols.get(0); + + SSLEngine engine = null; + EndPoint ep = endPoint; + while (engine == null && ep != null) + { + // TODO make more generic + if (ep instanceof SslConnection.DecryptedEndPoint) + engine = ((SslConnection.DecryptedEndPoint)ep).getSslConnection().getSSLEngine(); + else + ep = null; + } + + return configure(newServerConnection(connector, endPoint, engine, protocols, dft), connector, endPoint); + } + + protected abstract AbstractConnection newServerConnection(Connector connector, EndPoint endPoint, SSLEngine engine, List protocols, String defaultProtocol); + + @Override + public String toString() + { + return String.format("%s@%x{%s,%s,%s}", getClass().getSimpleName(), hashCode(), getProtocol(), getDefaultProtocol(), getProtocols()); + } +} diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnectionFactory.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnectionFactory.java index 36eaec1a0a8..d6a2a7b92b8 100644 --- a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnectionFactory.java +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnectionFactory.java @@ -47,19 +47,34 @@ import org.eclipse.jetty.util.annotation.ManagedObject; @ManagedObject("SPDY Server Connection Factory") public class SPDYServerConnectionFactory extends AbstractConnectionFactory { - // This method is placed here so as to provide a check for NPN before attempting to load any - // NPN classes. + /** + * @deprecated use {@link #checkProtocolNegotiationAvailable()} instead. + */ + @Deprecated public static void checkNPNAvailable() + { + checkProtocolNegotiationAvailable(); + } + + public static void checkProtocolNegotiationAvailable() + { + if (!isAvailableInBootClassPath("org.eclipse.jetty.alpn.ALPN") && + !isAvailableInBootClassPath("org.eclipse.jetty.npn.NextProtoNego")) + throw new IllegalStateException("No ALPN nor NPN classes available"); + } + + private static boolean isAvailableInBootClassPath(String className) { try { - Class npn = ClassLoader.getSystemClassLoader().loadClass("org.eclipse.jetty.npn.NextProtoNego"); - if (npn.getClassLoader() != null) - throw new IllegalStateException("NextProtoNego must be on JVM boot path"); + Class klass = ClassLoader.getSystemClassLoader().loadClass(className); + if (klass.getClassLoader() != null) + throw new IllegalStateException(className + " must be on JVM boot classpath"); + return true; } - catch (ClassNotFoundException e) + catch (ClassNotFoundException x) { - throw new IllegalStateException("No NextProtoNego on boot path", e); + return false; } } diff --git a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnector.java b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnector.java index f65635f8ec1..35dd6ff148c 100644 --- a/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnector.java +++ b/jetty-spdy/spdy-server/src/main/java/org/eclipse/jetty/spdy/server/SPDYServerConnector.java @@ -18,7 +18,8 @@ package org.eclipse.jetty.spdy.server; -import org.eclipse.jetty.server.ConnectionFactory; +import java.util.Objects; + import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; @@ -30,23 +31,21 @@ public class SPDYServerConnector extends ServerConnector { public SPDYServerConnector(Server server, ServerSessionFrameListener listener) { - this(server, null, listener); + super(server, (SslContextFactory)null, new SPDYServerConnectionFactory(SPDY.V2, listener)); } public SPDYServerConnector(Server server, SslContextFactory sslContextFactory, ServerSessionFrameListener listener) { - super(server, - sslContextFactory, - sslContextFactory==null - ?new ConnectionFactory[]{new SPDYServerConnectionFactory(SPDY.V2, listener)} - :new ConnectionFactory[]{ - new NPNServerConnectionFactory("spdy/3","spdy/2","http/1.1"), - new HttpConnectionFactory(), - new SPDYServerConnectionFactory(SPDY.V2, listener), - new SPDYServerConnectionFactory(SPDY.V3, listener)}); - if (getConnectionFactory(NPNServerConnectionFactory.class)!=null) - getConnectionFactory(NPNServerConnectionFactory.class).setDefaultProtocol("http/1.1"); - + this(server, sslContextFactory, listener, new NPNServerConnectionFactory("spdy/3", "spdy/2", "http/1.1")); } + public SPDYServerConnector(Server server, SslContextFactory sslContextFactory, ServerSessionFrameListener listener, NegotiatingServerConnectionFactory negotiator) + { + super(server, Objects.requireNonNull(sslContextFactory), + negotiator, + new SPDYServerConnectionFactory(SPDY.V3, listener), + new SPDYServerConnectionFactory(SPDY.V2, listener), + new HttpConnectionFactory()); + negotiator.setDefaultProtocol("http/1.1"); + } } diff --git a/pom.xml b/pom.xml index fd7ddc0666f..920b41eac36 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,7 @@ 1.6.1 1.2 1.1.0.v20120525 + 1.0.0-SNAPSHOT scm:git:http://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project.git diff --git a/tests/test-webapps/test-proxy-webapp/src/test/java/org/eclipse/jetty/TestTransparentProxyServer.java b/tests/test-webapps/test-proxy-webapp/src/test/java/org/eclipse/jetty/TestTransparentProxyServer.java index c8b9814d21a..b1be102f65a 100644 --- a/tests/test-webapps/test-proxy-webapp/src/test/java/org/eclipse/jetty/TestTransparentProxyServer.java +++ b/tests/test-webapps/test-proxy-webapp/src/test/java/org/eclipse/jetty/TestTransparentProxyServer.java @@ -102,7 +102,7 @@ public class TestTransparentProxyServer // Spdy Connector - SPDYServerConnectionFactory.checkNPNAvailable(); + SPDYServerConnectionFactory.checkProtocolNegotiationAvailable(); PushStrategy push = new ReferrerPushStrategy(); HTTPSPDYServerConnectionFactory spdy2 = new HTTPSPDYServerConnectionFactory(2,config,push); spdy2.setInputBufferSize(8192); From b3669c499c72bc9e2a7378be0b0fcec708c5b8d4 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Tue, 18 Mar 2014 17:13:17 +0100 Subject: [PATCH 005/114] Refactored SPDY modules to extract into a different module the tests that required NPN to run. --- jetty-spdy/pom.xml | 1 + jetty-spdy/spdy-client/pom.xml | 30 --- jetty-spdy/spdy-http-client-transport/pom.xml | 30 --- jetty-spdy/spdy-http-server/pom.xml | 33 +-- .../server/http/AbstractHTTPSPDYTest.java | 14 +- .../server/http/ProtocolNegotiationTest.java | 255 ------------------ .../server/proxy/ProxyHTTPToSPDYTest.java | 8 +- .../server/proxy/ProxySPDYToHTTPLoadTest.java | 13 +- .../server/proxy/ProxySPDYToHTTPTest.java | 13 +- .../server/proxy/ProxySPDYToSPDYLoadTest.java | 10 +- .../server/proxy/ProxySPDYToSPDYTest.java | 8 +- jetty-spdy/spdy-npn-tests/pom.xml | 95 +++++++ .../jetty/spdy/server/AbstractNPNTest.java | 77 ++++++ .../jetty/spdy/server/NPNModuleTest.java} | 19 +- .../spdy/server/ProtocolNegotiationTest.java | 207 ++++++++++++++ .../jetty/spdy/server/SSLEngineLeakTest.java | 36 +-- .../jetty/spdy/server/SSLSynReplyTest.java | 34 +-- .../server/proxy/NPNProxyHTTPToSPDYTest.java | 27 ++ .../proxy/NPNProxySPDYToHTTPLoadTest.java | 27 ++ .../server/proxy/NPNProxySPDYToHTTPTest.java | 27 ++ .../proxy/NPNProxySPDYToSPDYLoadTest.java | 27 ++ .../server/proxy/NPNProxySPDYToSPDYTest.java | 27 ++ .../test/resources/jetty-logging.properties | 2 + .../src/test/resources/keystore.jks | Bin .../src/test/resources/truststore.jks | Bin jetty-spdy/spdy-server/pom.xml | 30 --- 26 files changed, 571 insertions(+), 479 deletions(-) delete mode 100644 jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ProtocolNegotiationTest.java create mode 100644 jetty-spdy/spdy-npn-tests/pom.xml create mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractNPNTest.java rename jetty-spdy/{spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/NpnModuleTest.java => spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/NPNModuleTest.java} (92%) create mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/ProtocolNegotiationTest.java rename jetty-spdy/{spdy-server => spdy-npn-tests}/src/test/java/org/eclipse/jetty/spdy/server/SSLEngineLeakTest.java (65%) rename jetty-spdy/{spdy-server => spdy-npn-tests}/src/test/java/org/eclipse/jetty/spdy/server/SSLSynReplyTest.java (81%) create mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java create mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java create mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPTest.java create mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYLoadTest.java create mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYTest.java create mode 100644 jetty-spdy/spdy-npn-tests/src/test/resources/jetty-logging.properties rename jetty-spdy/{spdy-server => spdy-npn-tests}/src/test/resources/keystore.jks (100%) rename jetty-spdy/{spdy-server => spdy-npn-tests}/src/test/resources/truststore.jks (100%) diff --git a/jetty-spdy/pom.xml b/jetty-spdy/pom.xml index 61777c87504..43f509ff915 100644 --- a/jetty-spdy/pom.xml +++ b/jetty-spdy/pom.xml @@ -20,6 +20,7 @@ spdy-http-common spdy-http-server spdy-http-client-transport + spdy-npn-tests spdy-example-webapp diff --git a/jetty-spdy/spdy-client/pom.xml b/jetty-spdy/spdy-client/pom.xml index 4ec9956aa00..20bad8ff7b0 100644 --- a/jetty-spdy/spdy-client/pom.xml +++ b/jetty-spdy/spdy-client/pom.xml @@ -17,36 +17,6 @@ http://www.eclipse.org/jetty - - maven-dependency-plugin - - - copy - generate-resources - - copy - - - - - org.mortbay.jetty.npn - npn-boot - ${npn.version} - jar - false - ${project.build.directory}/npn - - - - - - - - maven-surefire-plugin - - -Xbootclasspath/p:${project.build.directory}/npn/npn-boot-${npn.version}.jar - - org.apache.felix maven-bundle-plugin diff --git a/jetty-spdy/spdy-http-client-transport/pom.xml b/jetty-spdy/spdy-http-client-transport/pom.xml index eb4fef0c14e..61f978a4c59 100644 --- a/jetty-spdy/spdy-http-client-transport/pom.xml +++ b/jetty-spdy/spdy-http-client-transport/pom.xml @@ -16,36 +16,6 @@ - - maven-dependency-plugin - - - copy - generate-resources - - copy - - - - - org.mortbay.jetty.npn - npn-boot - ${npn.version} - jar - false - ${project.build.directory}/npn - - - - - - - - maven-surefire-plugin - - -Xbootclasspath/p:${project.build.directory}/npn/npn-boot-${npn.version}.jar - - org.apache.felix maven-bundle-plugin diff --git a/jetty-spdy/spdy-http-server/pom.xml b/jetty-spdy/spdy-http-server/pom.xml index 4555f19235e..11740d8fa5c 100644 --- a/jetty-spdy/spdy-http-server/pom.xml +++ b/jetty-spdy/spdy-http-server/pom.xml @@ -33,35 +33,18 @@ - maven-dependency-plugin + org.apache.maven.plugins + maven-jar-plugin - copy - generate-resources + artifact-jars - copy + jar + test-jar - - - - org.mortbay.jetty.npn - npn-boot - ${npn.version} - jar - false - ${project.build.directory}/npn - - - - - maven-surefire-plugin - - -Xbootclasspath/p:${project.build.directory}/npn/npn-boot-${npn.version}.jar - - org.apache.felix maven-bundle-plugin @@ -127,12 +110,6 @@ ${project.version} test - - org.eclipse.jetty - jetty-start - ${project.version} - test - org.mockito mockito-core diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/AbstractHTTPSPDYTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/AbstractHTTPSPDYTest.java index f82a58d1b23..cf3ac1cf0ac 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/AbstractHTTPSPDYTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/AbstractHTTPSPDYTest.java @@ -73,11 +73,6 @@ public abstract class AbstractHTTPSPDYTest this.version = version; } - protected InetSocketAddress startHTTPServer(Handler handler) throws Exception - { - return startHTTPServer(SPDY.V2, handler, 30000); - } - protected InetSocketAddress startHTTPServer(short version, Handler handler, long idleTimeout) throws Exception { QueuedThreadPool threadPool = new QueuedThreadPool(256); @@ -89,7 +84,6 @@ public abstract class AbstractHTTPSPDYTest server.addConnector(connector); server.setHandler(handler); server.start(); - server.dumpStdErr(); return new InetSocketAddress("localhost", connector.getLocalPort()); } @@ -104,13 +98,7 @@ public abstract class AbstractHTTPSPDYTest HttpConfiguration httpConfiguration = new HttpConfiguration(); httpConfiguration.setSendServerVersion(true); httpConfiguration.setSendXPoweredBy(true); - HTTPSPDYServerConnector connector = new HTTPSPDYServerConnector(server,version, httpConfiguration, new PushStrategy.None()); - return connector; - } - - protected Session startClient(InetSocketAddress socketAddress, SessionFrameListener listener) throws Exception - { - return startClient(SPDY.V2, socketAddress, listener); + return new HTTPSPDYServerConnector(server, version, httpConfiguration, new PushStrategy.None()); } protected Session startClient(short version, InetSocketAddress socketAddress, SessionFrameListener listener) throws Exception diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ProtocolNegotiationTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ProtocolNegotiationTest.java deleted file mode 100644 index 5e9b3730fcb..00000000000 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ProtocolNegotiationTest.java +++ /dev/null @@ -1,255 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - - -package org.eclipse.jetty.spdy.server.http; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.InetSocketAddress; -import java.nio.charset.StandardCharsets; -import java.util.List; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocket; - -import org.eclipse.jetty.npn.NextProtoNego; -import org.eclipse.jetty.server.HttpConnectionFactory; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.spdy.server.SPDYServerConnector; -import org.eclipse.jetty.util.ssl.SslContextFactory; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; - -public class ProtocolNegotiationTest -{ - @Rule - public final TestWatcher testName = new TestWatcher() - { - - @Override - public void starting(Description description) - { - super.starting(description); - System.err.printf("Running %s.%s()%n", - description.getClassName(), - description.getMethodName()); - } - }; - - protected Server server; - protected SPDYServerConnector connector; - - protected InetSocketAddress startServer(SPDYServerConnector connector) throws Exception - { - server = new Server(); - if (connector == null) - connector = new SPDYServerConnector(server, newSslContextFactory(), null); - connector.setPort(0); - connector.setIdleTimeout(30000); - this.connector = connector; - server.addConnector(connector); - server.start(); - return new InetSocketAddress("localhost", connector.getLocalPort()); - } - - protected SslContextFactory newSslContextFactory() - { - SslContextFactory sslContextFactory = new SslContextFactory(); - sslContextFactory.setKeyStorePath("src/test/resources/keystore.jks"); - sslContextFactory.setKeyStorePassword("storepwd"); - sslContextFactory.setTrustStorePath("src/test/resources/truststore.jks"); - sslContextFactory.setTrustStorePassword("storepwd"); - sslContextFactory.setProtocol("TLSv1"); - sslContextFactory.setIncludeProtocols("TLSv1"); - return sslContextFactory; - } - - @Test - public void testServerAdvertisingHTTPSpeaksHTTP() throws Exception - { - InetSocketAddress address = startServer(null); - connector.addConnectionFactory(new HttpConnectionFactory()); - - SslContextFactory sslContextFactory = newSslContextFactory(); - sslContextFactory.start(); - SSLContext sslContext = sslContextFactory.getSslContext(); - SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort()); - client.setUseClientMode(true); - client.setSoTimeout(5000); - - NextProtoNego.put(client, new NextProtoNego.ClientProvider() - { - @Override - public boolean supports() - { - return true; - } - - @Override - public void unsupported() - { - } - - @Override - public String selectProtocol(List strings) - { - Assert.assertNotNull(strings); - String protocol = "http/1.1"; - Assert.assertTrue(strings.contains(protocol)); - return protocol; - } - }); - - client.startHandshake(); - - // Verify that the server really speaks http/1.1 - - OutputStream output = client.getOutputStream(); - output.write(("" + - "GET / HTTP/1.1\r\n" + - "Host: localhost:" + address.getPort() + "\r\n" + - "\r\n" + - "").getBytes(StandardCharsets.UTF_8)); - output.flush(); - - InputStream input = client.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); - String line = reader.readLine(); - Assert.assertTrue(line.contains(" 404 ")); - - client.close(); - } - - @Test - public void testServerAdvertisingSPDYAndHTTPSpeaksHTTPWhenNegotiated() throws Exception - { - InetSocketAddress address = startServer(null); - connector.addConnectionFactory(new HttpConnectionFactory()); - - SslContextFactory sslContextFactory = newSslContextFactory(); - sslContextFactory.start(); - SSLContext sslContext = sslContextFactory.getSslContext(); - SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort()); - client.setUseClientMode(true); - client.setSoTimeout(5000); - - NextProtoNego.put(client, new NextProtoNego.ClientProvider() - { - @Override - public boolean supports() - { - return true; - } - - @Override - public void unsupported() - { - } - - @Override - public String selectProtocol(List strings) - { - Assert.assertNotNull(strings); - String spdyProtocol = "spdy/2"; - Assert.assertTrue(strings.contains(spdyProtocol)); - String httpProtocol = "http/1.1"; - Assert.assertTrue(strings.contains(httpProtocol)); - Assert.assertTrue(strings.indexOf(spdyProtocol) < strings.indexOf(httpProtocol)); - return httpProtocol; - } - }); - - client.startHandshake(); - - // Verify that the server really speaks http/1.1 - - OutputStream output = client.getOutputStream(); - output.write(("" + - "GET / HTTP/1.1\r\n" + - "Host: localhost:" + address.getPort() + "\r\n" + - "\r\n" + - "").getBytes(StandardCharsets.UTF_8)); - output.flush(); - - InputStream input = client.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); - String line = reader.readLine(); - Assert.assertTrue(line.contains(" 404 ")); - - client.close(); - } - - @Test - public void testServerAdvertisingSPDYAndHTTPSpeaksDefaultProtocolWhenNPNMissing() throws Exception - { - InetSocketAddress address = startServer(null); - connector.addConnectionFactory(new HttpConnectionFactory()); - - SslContextFactory sslContextFactory = newSslContextFactory(); - sslContextFactory.start(); - SSLContext sslContext = sslContextFactory.getSslContext(); - SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort()); - client.setUseClientMode(true); - client.setSoTimeout(5000); - - NextProtoNego.put(client, new NextProtoNego.ClientProvider() - { - @Override - public boolean supports() - { - return false; - } - - @Override - public void unsupported() - { - } - - @Override - public String selectProtocol(List strings) - { - return null; - } - }); - - client.startHandshake(); - - // Verify that the server really speaks http/1.1 - - OutputStream output = client.getOutputStream(); - output.write(("" + - "GET / HTTP/1.1\r\n" + - "Host: localhost:" + address.getPort() + "\r\n" + - "\r\n" + - "").getBytes(StandardCharsets.UTF_8)); - output.flush(); - - InputStream input = client.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); - String line = reader.readLine(); - Assert.assertTrue(line.contains(" 404 ")); - - client.close(); - } -} diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java index 8704e0de99d..d31cb3b8767 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java @@ -18,9 +18,6 @@ package org.eclipse.jetty.spdy.server.proxy; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; - import java.net.InetSocketAddress; import java.nio.charset.StandardCharsets; import java.util.Arrays; @@ -68,8 +65,11 @@ import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + @RunWith(Parameterized.class) -public class ProxyHTTPToSPDYTest +public abstract class ProxyHTTPToSPDYTest { private static final Logger LOG = Log.getLogger(ProxyHTTPToSPDYTest.class); @Rule diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java index b2048a5acf6..daafa57a5f9 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java @@ -18,11 +18,6 @@ package org.eclipse.jetty.spdy.server.proxy; -import static junit.framework.Assert.fail; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertThat; - import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.InetSocketAddress; @@ -38,7 +33,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; - import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -76,9 +70,14 @@ import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import static junit.framework.Assert.fail; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.junit.Assert.assertThat; + @Ignore @RunWith(value = Parameterized.class) -public class ProxySPDYToHTTPLoadTest +public abstract class ProxySPDYToHTTPLoadTest { private static final Logger LOG = Log.getLogger(ProxySPDYToHTTPLoadTest.class); @Rule diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java index 53639186013..ebbe785f501 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java @@ -18,11 +18,6 @@ package org.eclipse.jetty.spdy.server.proxy; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertThat; - import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -32,7 +27,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; - import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -76,8 +70,13 @@ import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.nullValue; +import static org.junit.Assert.assertThat; + @RunWith(value = Parameterized.class) -public class ProxySPDYToHTTPTest +public abstract class ProxySPDYToHTTPTest { @Rule public final TestWatcher testName = new TestWatcher() diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java index 1122185e0f3..fb7cbdfc628 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java @@ -18,10 +18,6 @@ package org.eclipse.jetty.spdy.server.proxy; -import static junit.framework.Assert.fail; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; - import java.io.ByteArrayOutputStream; import java.net.InetSocketAddress; import java.util.ArrayList; @@ -65,8 +61,12 @@ import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import static junit.framework.Assert.fail; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + @RunWith(value = Parameterized.class) -public class ProxySPDYToSPDYLoadTest +public abstract class ProxySPDYToSPDYLoadTest { @Rule public final TestWatcher testName = new TestWatcher() diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java index a3e1400b375..44bb2326b8f 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java @@ -18,9 +18,6 @@ package org.eclipse.jetty.spdy.server.proxy; -import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; - import java.io.ByteArrayOutputStream; import java.net.InetSocketAddress; import java.nio.charset.StandardCharsets; @@ -66,8 +63,11 @@ import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertThat; + @RunWith(value = Parameterized.class) -public class ProxySPDYToSPDYTest +public abstract class ProxySPDYToSPDYTest { @Rule public final TestWatcher testName = new TestWatcher() diff --git a/jetty-spdy/spdy-npn-tests/pom.xml b/jetty-spdy/spdy-npn-tests/pom.xml new file mode 100644 index 00000000000..316d5f3788c --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/pom.xml @@ -0,0 +1,95 @@ + + + + org.eclipse.jetty.spdy + spdy-parent + 9.1.4-SNAPSHOT + + + 4.0.0 + spdy-npn-tests + Jetty :: SPDY :: NPN Tests + + + + + maven-dependency-plugin + + + copy + generate-resources + + copy + + + + + org.mortbay.jetty.npn + npn-boot + ${npn.version} + jar + false + ${project.build.directory}/npn + + + + + + + + maven-surefire-plugin + + -Xbootclasspath/p:${project.build.directory}/npn/npn-boot-${npn.version}.jar + + + + + + + + org.eclipse.jetty.npn + npn-api + ${npn.api.version} + provided + + + org.eclipse.jetty + jetty-start + ${project.version} + test + + + org.eclipse.jetty + jetty-server + ${project.version} + test + + + org.eclipse.jetty.spdy + spdy-server + ${project.version} + test + + + org.eclipse.jetty.spdy + spdy-http-server + ${project.version} + test + + + org.eclipse.jetty.spdy + spdy-http-server + ${project.version} + tests + test + + + junit + junit + test + + + + diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractNPNTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractNPNTest.java new file mode 100644 index 00000000000..8ed48031029 --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractNPNTest.java @@ -0,0 +1,77 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.net.InetSocketAddress; + +import org.eclipse.jetty.npn.NextProtoNego; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.spdy.client.SPDYClient; +import org.eclipse.jetty.toolchain.test.TestTracker; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.eclipse.jetty.util.thread.QueuedThreadPool; +import org.junit.After; +import org.junit.Rule; + +public class AbstractNPNTest +{ + @Rule + public final TestTracker tracker = new TestTracker(); + protected Server server; + protected SPDYServerConnector connector; + protected SPDYClient.Factory clientFactory; + + protected InetSocketAddress prepare() throws Exception + { + server = new Server(); + connector = new SPDYServerConnector(server, newSslContextFactory(), null); + connector.setPort(0); + connector.setIdleTimeout(30000); + server.addConnector(connector); + server.start(); + + QueuedThreadPool threadPool = new QueuedThreadPool(); + threadPool.setName(threadPool.getName() + "-client"); + clientFactory = new SPDYClient.Factory(threadPool); + clientFactory.start(); + + NextProtoNego.debug = true; + + return new InetSocketAddress("localhost", connector.getLocalPort()); + } + + protected SslContextFactory newSslContextFactory() + { + SslContextFactory sslContextFactory = new SslContextFactory(); + sslContextFactory.setKeyStorePath("src/test/resources/keystore.jks"); + sslContextFactory.setKeyStorePassword("storepwd"); + sslContextFactory.setTrustStorePath("src/test/resources/truststore.jks"); + sslContextFactory.setTrustStorePassword("storepwd"); + sslContextFactory.setProtocol("TLSv1"); + sslContextFactory.setIncludeProtocols("TLSv1"); + return sslContextFactory; + } + + @After + public void dispose() throws Exception + { + clientFactory.stop(); + server.stop(); + } +} diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/NpnModuleTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/NPNModuleTest.java similarity index 92% rename from jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/NpnModuleTest.java rename to jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/NPNModuleTest.java index ce48352c3bd..c39d1aa58d1 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/NpnModuleTest.java +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/NPNModuleTest.java @@ -18,9 +18,6 @@ package org.eclipse.jetty.spdy.server; -import static org.hamcrest.Matchers.*; -import static org.junit.Assert.*; - import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -45,8 +42,14 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + @RunWith(Parameterized.class) -public class NpnModuleTest +public class NPNModuleTest { /** This is here to prevent pointless download attempts */ private static final List KNOWN_GOOD_NPN_URLS = new ArrayList<>(); @@ -66,7 +69,7 @@ public class NpnModuleTest @Parameters(name = "{index}: mod:{0}") public static List data() { - File npnBootModDir = MavenTestingUtils.getProjectDir("src/main/config/modules/npn"); + File npnBootModDir = MavenTestingUtils.getProjectDir("../spdy-http-server/src/main/config/modules/npn"); List data = new ArrayList<>(); for (File file : npnBootModDir.listFiles()) { @@ -86,8 +89,8 @@ public class NpnModuleTest @BeforeClass public static void initBaseHome() { - File homeDir = MavenTestingUtils.getProjectDir("src/main/config"); - File baseDir = MavenTestingUtils.getTargetTestingDir(NpnModuleTest.class.getName()); + File homeDir = MavenTestingUtils.getProjectDir("../spdy-http-server/src/main/config"); + File baseDir = MavenTestingUtils.getTargetTestingDir(NPNModuleTest.class.getName()); FS.ensureEmpty(baseDir); basehome = new BaseHome(homeDir,baseDir); } @@ -139,7 +142,7 @@ public class NpnModuleTest public static void main(String[] args) { - File outputDir = MavenTestingUtils.getTargetTestingDir(NpnModuleTest.class.getSimpleName() + "-main"); + File outputDir = MavenTestingUtils.getTargetTestingDir(NPNModuleTest.class.getSimpleName() + "-main"); FS.ensureEmpty(outputDir); for (String ref : KNOWN_GOOD_NPN_URLS) { diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/ProtocolNegotiationTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/ProtocolNegotiationTest.java new file mode 100644 index 00000000000..e1b0df961b8 --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/ProtocolNegotiationTest.java @@ -0,0 +1,207 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; +import java.util.List; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; + +import org.eclipse.jetty.npn.NextProtoNego; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.junit.Assert; +import org.junit.Test; + +public class ProtocolNegotiationTest extends AbstractNPNTest +{ + @Test + public void testServerAdvertisingHTTPSpeaksHTTP() throws Exception + { + InetSocketAddress address = prepare(); + connector.addConnectionFactory(new HttpConnectionFactory()); + + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLContext sslContext = sslContextFactory.getSslContext(); + + try (SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort())) + { + client.setUseClientMode(true); + client.setSoTimeout(5000); + + NextProtoNego.put(client, new NextProtoNego.ClientProvider() + { + @Override + public boolean supports() + { + return true; + } + + @Override + public void unsupported() + { + } + + @Override + public String selectProtocol(List strings) + { + Assert.assertNotNull(strings); + String protocol = "http/1.1"; + Assert.assertTrue(strings.contains(protocol)); + return protocol; + } + }); + + client.startHandshake(); + + // Verify that the server really speaks http/1.1 + + OutputStream output = client.getOutputStream(); + output.write(("" + + "GET / HTTP/1.1\r\n" + + "Host: localhost:" + address.getPort() + "\r\n" + + "\r\n" + + "").getBytes(StandardCharsets.UTF_8)); + output.flush(); + + InputStream input = client.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); + String line = reader.readLine(); + Assert.assertTrue(line.contains(" 404 ")); + } + } + + @Test + public void testServerAdvertisingSPDYAndHTTPSpeaksHTTPWhenNegotiated() throws Exception + { + InetSocketAddress address = prepare(); + connector.addConnectionFactory(new HttpConnectionFactory()); + + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLContext sslContext = sslContextFactory.getSslContext(); + try (SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort())) + { + client.setUseClientMode(true); + client.setSoTimeout(5000); + + NextProtoNego.put(client, new NextProtoNego.ClientProvider() + { + @Override + public boolean supports() + { + return true; + } + + @Override + public void unsupported() + { + } + + @Override + public String selectProtocol(List strings) + { + Assert.assertNotNull(strings); + String spdyProtocol = "spdy/2"; + Assert.assertTrue(strings.contains(spdyProtocol)); + String httpProtocol = "http/1.1"; + Assert.assertTrue(strings.contains(httpProtocol)); + Assert.assertTrue(strings.indexOf(spdyProtocol) < strings.indexOf(httpProtocol)); + return httpProtocol; + } + }); + + client.startHandshake(); + + // Verify that the server really speaks http/1.1 + + OutputStream output = client.getOutputStream(); + output.write(("" + + "GET / HTTP/1.1\r\n" + + "Host: localhost:" + address.getPort() + "\r\n" + + "\r\n" + + "").getBytes(StandardCharsets.UTF_8)); + output.flush(); + + InputStream input = client.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); + String line = reader.readLine(); + Assert.assertTrue(line.contains(" 404 ")); + } + } + + @Test + public void testServerAdvertisingSPDYAndHTTPSpeaksDefaultProtocolWhenNPNMissing() throws Exception + { + InetSocketAddress address = prepare(); + connector.addConnectionFactory(new HttpConnectionFactory()); + + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLContext sslContext = sslContextFactory.getSslContext(); + try (SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort())) + { + client.setUseClientMode(true); + client.setSoTimeout(5000); + + NextProtoNego.put(client, new NextProtoNego.ClientProvider() + { + @Override + public boolean supports() + { + return false; + } + + @Override + public void unsupported() + { + } + + @Override + public String selectProtocol(List strings) + { + return null; + } + }); + + client.startHandshake(); + + // Verify that the server really speaks http/1.1 + + OutputStream output = client.getOutputStream(); + output.write(("" + + "GET / HTTP/1.1\r\n" + + "Host: localhost:" + address.getPort() + "\r\n" + + "\r\n" + + "").getBytes(StandardCharsets.UTF_8)); + output.flush(); + + InputStream input = client.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); + String line = reader.readLine(); + Assert.assertTrue(line.contains(" 404 ")); + } + } +} diff --git a/jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SSLEngineLeakTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/SSLEngineLeakTest.java similarity index 65% rename from jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SSLEngineLeakTest.java rename to jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/SSLEngineLeakTest.java index c69ba17b8ca..4ce1689ea10 100644 --- a/jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SSLEngineLeakTest.java +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/SSLEngineLeakTest.java @@ -19,39 +19,20 @@ package org.eclipse.jetty.spdy.server; import java.lang.reflect.Field; +import java.net.InetSocketAddress; import java.util.Map; -import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import org.eclipse.jetty.npn.NextProtoNego; -import org.eclipse.jetty.server.Server; import org.eclipse.jetty.spdy.api.GoAwayInfo; +import org.eclipse.jetty.spdy.api.SPDY; import org.eclipse.jetty.spdy.api.Session; -import org.eclipse.jetty.spdy.api.server.ServerSessionFrameListener; -import org.eclipse.jetty.spdy.client.SPDYClient; -import org.eclipse.jetty.util.ssl.SslContextFactory; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; -public class SSLEngineLeakTest extends AbstractTest +public class SSLEngineLeakTest extends AbstractNPNTest { - @Override - protected SPDYServerConnector newSPDYServerConnector(Server server, ServerSessionFrameListener listener) - { - SslContextFactory sslContextFactory = newSslContextFactory(); - return new SPDYServerConnector(server, sslContextFactory, listener); - } - - @Override - protected SPDYClient.Factory newSPDYClientFactory(Executor threadPool) - { - SslContextFactory sslContextFactory = newSslContextFactory(); - return new SPDYClient.Factory(threadPool, null, sslContextFactory); - } - @Test - @Ignore public void testSSLEngineLeak() throws Exception { System.gc(); @@ -67,12 +48,12 @@ public class SSLEngineLeakTest extends AbstractTest // Allow the close to arrive to the server and the selector to process it Thread.sleep(1000); - // Perform GC to be sure that the WeakHashMap is cleared - Thread.sleep(1000); + // Perform GC to be sure that the map is cleared System.gc(); + Thread.sleep(1000); - // Check that the WeakHashMap is empty - if (objects.size()!=initialSize) + // Check that the map is empty + if (objects.size() != initialSize) { System.err.println(objects); server.dumpStdErr(); @@ -83,7 +64,8 @@ public class SSLEngineLeakTest extends AbstractTest private void avoidStackLocalVariables() throws Exception { - Session session = startClient(startServer(null), null); + InetSocketAddress address = prepare(); + Session session = clientFactory.newSPDYClient(SPDY.V3).connect(address, null); session.goAway(new GoAwayInfo(5, TimeUnit.SECONDS)); } } diff --git a/jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SSLSynReplyTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/SSLSynReplyTest.java similarity index 81% rename from jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SSLSynReplyTest.java rename to jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/SSLSynReplyTest.java index 267d8593b6f..a6649eb746e 100644 --- a/jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SSLSynReplyTest.java +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/SSLSynReplyTest.java @@ -23,48 +23,20 @@ import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; import java.util.List; -import java.util.concurrent.Executor; - import javax.net.ssl.SSLEngine; import org.eclipse.jetty.npn.NextProtoNego; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.spdy.api.server.ServerSessionFrameListener; -import org.eclipse.jetty.spdy.client.SPDYClient; import org.eclipse.jetty.util.BufferUtil; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; -public class SSLSynReplyTest extends SynReplyTest +public class SSLSynReplyTest extends AbstractNPNTest { - @Override - protected SPDYServerConnector newSPDYServerConnector(Server server, ServerSessionFrameListener listener) - { - SslContextFactory sslContextFactory = newSslContextFactory(); - sslContextFactory.setEndpointIdentificationAlgorithm(""); - return new SPDYServerConnector(server, sslContextFactory, listener); - } - - @Override - protected SPDYClient.Factory newSPDYClientFactory(Executor threadPool) - { - SslContextFactory sslContextFactory = newSslContextFactory(); - sslContextFactory.setEndpointIdentificationAlgorithm(""); - return new SPDYClient.Factory(threadPool, null, sslContextFactory); - } - - @Before - public void init() - { - NextProtoNego.debug = true; - } - @Test public void testGentleCloseDuringHandshake() throws Exception { - InetSocketAddress address = startServer(version, null); + InetSocketAddress address = prepare(); SslContextFactory sslContextFactory = newSslContextFactory(); sslContextFactory.start(); SSLEngine sslEngine = sslContextFactory.newSSLEngine(address); @@ -124,7 +96,7 @@ public class SSLSynReplyTest extends SynReplyTest @Test public void testAbruptCloseDuringHandshake() throws Exception { - InetSocketAddress address = startServer(version, null); + InetSocketAddress address = prepare(); SslContextFactory sslContextFactory = newSslContextFactory(); sslContextFactory.start(); SSLEngine sslEngine = sslContextFactory.newSSLEngine(address); diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java new file mode 100644 index 00000000000..edae46abbee --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java @@ -0,0 +1,27 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server.proxy; + +public class NPNProxyHTTPToSPDYTest extends ProxyHTTPToSPDYTest +{ + public NPNProxyHTTPToSPDYTest(short version) + { + super(version); + } +} diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java new file mode 100644 index 00000000000..290b6376762 --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java @@ -0,0 +1,27 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server.proxy; + +public class NPNProxySPDYToHTTPLoadTest extends ProxySPDYToHTTPLoadTest +{ + public NPNProxySPDYToHTTPLoadTest(short version) + { + super(version); + } +} diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPTest.java new file mode 100644 index 00000000000..8fbcf480ed5 --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPTest.java @@ -0,0 +1,27 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server.proxy; + +public class NPNProxySPDYToHTTPTest extends ProxySPDYToHTTPTest +{ + public NPNProxySPDYToHTTPTest(short version) + { + super(version); + } +} diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYLoadTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYLoadTest.java new file mode 100644 index 00000000000..2e837be2b07 --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYLoadTest.java @@ -0,0 +1,27 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server.proxy; + +public class NPNProxySPDYToSPDYLoadTest extends ProxySPDYToSPDYLoadTest +{ + public NPNProxySPDYToSPDYLoadTest(short version) + { + super(version); + } +} diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYTest.java new file mode 100644 index 00000000000..08b3bfaa323 --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToSPDYTest.java @@ -0,0 +1,27 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server.proxy; + +public class NPNProxySPDYToSPDYTest extends ProxySPDYToSPDYTest +{ + public NPNProxySPDYToSPDYTest(short version) + { + super(version); + } +} diff --git a/jetty-spdy/spdy-npn-tests/src/test/resources/jetty-logging.properties b/jetty-spdy/spdy-npn-tests/src/test/resources/jetty-logging.properties new file mode 100644 index 00000000000..ead13ec1970 --- /dev/null +++ b/jetty-spdy/spdy-npn-tests/src/test/resources/jetty-logging.properties @@ -0,0 +1,2 @@ +org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog +#org.eclipse.jetty.spdy.LEVEL=DEBUG diff --git a/jetty-spdy/spdy-server/src/test/resources/keystore.jks b/jetty-spdy/spdy-npn-tests/src/test/resources/keystore.jks similarity index 100% rename from jetty-spdy/spdy-server/src/test/resources/keystore.jks rename to jetty-spdy/spdy-npn-tests/src/test/resources/keystore.jks diff --git a/jetty-spdy/spdy-server/src/test/resources/truststore.jks b/jetty-spdy/spdy-npn-tests/src/test/resources/truststore.jks similarity index 100% rename from jetty-spdy/spdy-server/src/test/resources/truststore.jks rename to jetty-spdy/spdy-npn-tests/src/test/resources/truststore.jks diff --git a/jetty-spdy/spdy-server/pom.xml b/jetty-spdy/spdy-server/pom.xml index 1d3b0a76b96..40e281f09b0 100644 --- a/jetty-spdy/spdy-server/pom.xml +++ b/jetty-spdy/spdy-server/pom.xml @@ -17,36 +17,6 @@ http://www.eclipse.org/jetty - - maven-dependency-plugin - - - copy - generate-resources - - copy - - - - - org.mortbay.jetty.npn - npn-boot - ${npn.version} - jar - false - ${project.build.directory}/npn - - - - - - - - maven-surefire-plugin - - -Xbootclasspath/p:${project.build.directory}/npn/npn-boot-${npn.version}.jar - - org.apache.felix maven-bundle-plugin From dba855582515f83720cb3307e1d1237bd1cbd0d0 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Tue, 18 Mar 2014 23:58:05 +0100 Subject: [PATCH 006/114] Initial support for JDK 8 builds. Added ALPN version and moved jetty-osgi module to a profile, only built when using JDK 7. --- pom.xml | 285 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 153 insertions(+), 132 deletions(-) diff --git a/pom.xml b/pom.xml index 920b41eac36..9414082e29c 100644 --- a/pom.xml +++ b/pom.xml @@ -434,7 +434,6 @@ jetty-client jetty-proxy jetty-jaspi - jetty-osgi jetty-rewrite jetty-nosql jetty-quickstart @@ -815,137 +814,159 @@ - 7u9 - - - java.version - 1.7.0_9 - - - - 1.1.3.v20130313 - - - - 7u10 - - - java.version - 1.7.0_10 - - - - 1.1.3.v20130313 - - - - 7u11 - - - java.version - 1.7.0_11 - - - - 1.1.3.v20130313 - - - - 7u13 - - - java.version - 1.7.0_13 - - - - 1.1.4.v20130313 - - - - 7u15 - - - java.version - 1.7.0_15 - - - - 1.1.5.v20130313 - - - - 7u17 - - - java.version - 1.7.0_17 - - - - 1.1.5.v20130313 - - - - 7u21 - - - java.version - 1.7.0_21 - - - - 1.1.5.v20130313 - - - - 7u25 - - - java.version - 1.7.0_25 - - - - 1.1.5.v20130313 - - - - 7u40 - - - java.version - 1.7.0_40 - - - - 1.1.6.v20130911 - - - - 7u45 - - - java.version - 1.7.0_45 - - - - 1.1.6.v20130911 - - - - 7u51 - - - java.version - 1.7.0_51 - - - - 1.1.6.v20130911 - - + osgi + + [1.7,1.8) + + + jetty-osgi + + + + 7u9 + + + java.version + 1.7.0_9 + + + + 1.1.3.v20130313 + + + + 7u10 + + + java.version + 1.7.0_10 + + + + 1.1.3.v20130313 + + + + 7u11 + + + java.version + 1.7.0_11 + + + + 1.1.3.v20130313 + + + + 7u13 + + + java.version + 1.7.0_13 + + + + 1.1.4.v20130313 + + + + 7u15 + + + java.version + 1.7.0_15 + + + + 1.1.5.v20130313 + + + + 7u17 + + + java.version + 1.7.0_17 + + + + 1.1.5.v20130313 + + + + 7u21 + + + java.version + 1.7.0_21 + + + + 1.1.5.v20130313 + + + + 7u25 + + + java.version + 1.7.0_25 + + + + 1.1.5.v20130313 + + + + 7u40 + + + java.version + 1.7.0_40 + + + + 1.1.6.v20130911 + + + + 7u45 + + + java.version + 1.7.0_45 + + + + 1.1.6.v20130911 + + + + 7u51 + + + java.version + 1.7.0_51 + + + + 1.1.6.v20130911 + 7.0.0 + + + + 8u00 + + + java.version + 1.8.0 + + + + 8.0.0 + + From d77b07d687a2aeab646cb01803daab172eb22855 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Tue, 18 Mar 2014 23:58:28 +0100 Subject: [PATCH 007/114] Refactored SPDY modules and added ALPN tests. --- jetty-spdy/pom.xml | 14 +- jetty-spdy/spdy-alpn-tests/pom.xml | 89 ++++++++ .../spdy/server/ALPNNegotiationTest.java | 216 ++++++++++++++++++ .../jetty/spdy/server/ALPNSynReplyTest.java | 160 +++++++++++++ .../jetty/spdy/server/AbstractALPNTest.java | 77 +++++++ .../test/resources/jetty-logging.properties | 2 + .../src/test/resources/keystore.jks | Bin 0 -> 2206 bytes .../src/test/resources/truststore.jks | Bin 0 -> 916 bytes .../proxy/HTTPSPDYProxyServerConnector.java | 27 +-- .../server/proxy/ProxyHTTPToSPDYTest.java | 31 +-- .../server/proxy/ProxySPDYToHTTPLoadTest.java | 33 +-- .../server/proxy/ProxySPDYToHTTPTest.java | 17 +- .../server/proxy/ProxySPDYToSPDYLoadTest.java | 17 +- .../server/proxy/ProxySPDYToSPDYTest.java | 16 +- ...ationTest.java => NPNNegotiationTest.java} | 2 +- .../server/proxy/NPNProxyHTTPToSPDYTest.java | 27 --- .../proxy/NPNProxySPDYToHTTPLoadTest.java | 4 +- 17 files changed, 600 insertions(+), 132 deletions(-) create mode 100644 jetty-spdy/spdy-alpn-tests/pom.xml create mode 100644 jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNNegotiationTest.java create mode 100644 jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNSynReplyTest.java create mode 100644 jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractALPNTest.java create mode 100644 jetty-spdy/spdy-alpn-tests/src/test/resources/jetty-logging.properties create mode 100644 jetty-spdy/spdy-alpn-tests/src/test/resources/keystore.jks create mode 100644 jetty-spdy/spdy-alpn-tests/src/test/resources/truststore.jks rename jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/{ProtocolNegotiationTest.java => NPNNegotiationTest.java} (99%) delete mode 100644 jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java diff --git a/jetty-spdy/pom.xml b/jetty-spdy/pom.xml index 43f509ff915..e48b9469f44 100644 --- a/jetty-spdy/pom.xml +++ b/jetty-spdy/pom.xml @@ -20,7 +20,7 @@ spdy-http-common spdy-http-server spdy-http-client-transport - spdy-npn-tests + spdy-alpn-tests spdy-example-webapp @@ -71,4 +71,16 @@ + + + jdk7-npn + + [1.7,1.8) + + + spdy-npn-tests + + + + diff --git a/jetty-spdy/spdy-alpn-tests/pom.xml b/jetty-spdy/spdy-alpn-tests/pom.xml new file mode 100644 index 00000000000..c9219b94ee2 --- /dev/null +++ b/jetty-spdy/spdy-alpn-tests/pom.xml @@ -0,0 +1,89 @@ + + + + org.eclipse.jetty.spdy + spdy-parent + 9.1.4-SNAPSHOT + + + 4.0.0 + spdy-alpn-tests + Jetty :: SPDY :: ALPN Tests + + + + + maven-dependency-plugin + + + copy + generate-resources + + copy + + + + + org.mortbay.jetty.alpn + alpn-boot + ${alpn.version} + jar + false + ${project.build.directory}/alpn + + + + + + + + maven-surefire-plugin + + -Xbootclasspath/p:${project.build.directory}/alpn/alpn-boot-${alpn.version}.jar + + + + + + + + org.eclipse.jetty.alpn + alpn-api + ${alpn.api.version} + provided + + + org.eclipse.jetty + jetty-server + ${project.version} + test + + + org.eclipse.jetty.spdy + spdy-server + ${project.version} + test + + + org.eclipse.jetty.spdy + spdy-http-server + ${project.version} + test + + + org.eclipse.jetty.spdy + spdy-http-server + ${project.version} + tests + test + + + junit + junit + test + + + + diff --git a/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNNegotiationTest.java b/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNNegotiationTest.java new file mode 100644 index 00000000000..0f3c4be759b --- /dev/null +++ b/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNNegotiationTest.java @@ -0,0 +1,216 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.List; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; + +import org.eclipse.jetty.alpn.ALPN; +import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.junit.Assert; +import org.junit.Test; + +public class ALPNNegotiationTest extends AbstractALPNTest +{ + @Test + public void testClientAdvertisingHTTPServerSpeaksHTTP() throws Exception + { + InetSocketAddress address = prepare(); + connector.addConnectionFactory(new HttpConnectionFactory()); + + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLContext sslContext = sslContextFactory.getSslContext(); + + try (SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort())) + { + client.setUseClientMode(true); + client.setSoTimeout(5000); + + ALPN.put(client, new ALPN.ClientProvider() + { + @Override + public boolean supports() + { + return true; + } + + @Override + public void unsupported() + { + } + + @Override + public List protocols() + { + return Arrays.asList("http/1.1"); + } + + @Override + public void selected(String protocol) + { + Assert.assertEquals("http/1.1", protocol); + } + }); + + client.startHandshake(); + + // Verify that the server really speaks http/1.1 + + OutputStream output = client.getOutputStream(); + output.write(("" + + "GET / HTTP/1.1\r\n" + + "Host: localhost:" + address.getPort() + "\r\n" + + "\r\n" + + "").getBytes(StandardCharsets.UTF_8)); + output.flush(); + + InputStream input = client.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); + String line = reader.readLine(); + Assert.assertTrue(line.contains(" 404 ")); + } + } + + @Test + public void testClientAdvertisingMultipleProtocolsServerSpeaksHTTPWhenNegotiated() throws Exception + { + InetSocketAddress address = prepare(); + connector.addConnectionFactory(new HttpConnectionFactory()); + + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLContext sslContext = sslContextFactory.getSslContext(); + try (SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort())) + { + client.setUseClientMode(true); + client.setSoTimeout(5000); + + ALPN.put(client, new ALPN.ClientProvider() + { + @Override + public boolean supports() + { + return true; + } + + @Override + public void unsupported() + { + } + + @Override + public List protocols() + { + return Arrays.asList("unknown/1.0", "http/1.1"); + } + + @Override + public void selected(String protocol) + { + Assert.assertEquals("http/1.1", protocol); + } + }); + + client.startHandshake(); + + // Verify that the server really speaks http/1.1 + + OutputStream output = client.getOutputStream(); + output.write(("" + + "GET / HTTP/1.1\r\n" + + "Host: localhost:" + address.getPort() + "\r\n" + + "\r\n" + + "").getBytes(StandardCharsets.UTF_8)); + output.flush(); + + InputStream input = client.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); + String line = reader.readLine(); + Assert.assertTrue(line.contains(" 404 ")); + } + } + + @Test + public void testClientNotSupportingALPNServerSpeaksDefaultProtocol() throws Exception + { + InetSocketAddress address = prepare(); + connector.addConnectionFactory(new HttpConnectionFactory()); + + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLContext sslContext = sslContextFactory.getSslContext(); + try (SSLSocket client = (SSLSocket)sslContext.getSocketFactory().createSocket(address.getAddress(), address.getPort())) + { + client.setUseClientMode(true); + client.setSoTimeout(5000); + + ALPN.put(client, new ALPN.ClientProvider() + { + @Override + public boolean supports() + { + return false; + } + + @Override + public void unsupported() + { + } + + @Override + public List protocols() + { + return null; + } + + @Override + public void selected(String s) + { + } + }); + + client.startHandshake(); + + // Verify that the server really speaks http/1.1 + + OutputStream output = client.getOutputStream(); + output.write(("" + + "GET / HTTP/1.1\r\n" + + "Host: localhost:" + address.getPort() + "\r\n" + + "\r\n" + + "").getBytes(StandardCharsets.UTF_8)); + output.flush(); + + InputStream input = client.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); + String line = reader.readLine(); + Assert.assertTrue(line.contains(" 404 ")); + } + } +} diff --git a/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNSynReplyTest.java b/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNSynReplyTest.java new file mode 100644 index 00000000000..d9f9270c1c3 --- /dev/null +++ b/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/ALPNSynReplyTest.java @@ -0,0 +1,160 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + + +package org.eclipse.jetty.spdy.server; + +import java.net.InetSocketAddress; +import java.nio.ByteBuffer; +import java.nio.channels.SocketChannel; +import java.util.List; +import javax.net.ssl.SSLEngine; + +import org.eclipse.jetty.alpn.ALPN; +import org.eclipse.jetty.util.BufferUtil; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.junit.Assert; +import org.junit.Test; + +public class ALPNSynReplyTest extends AbstractALPNTest +{ + @Test + public void testGentleCloseDuringHandshake() throws Exception + { + InetSocketAddress address = prepare(); + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLEngine sslEngine = sslContextFactory.newSSLEngine(address); + sslEngine.setUseClientMode(true); + ALPN.put(sslEngine, new ALPN.ClientProvider() + { + @Override + public boolean supports() + { + return true; + } + + @Override + public void unsupported() + { + } + + @Override + public List protocols() + { + return null; + } + + @Override + public void selected(String protocol) + { + } + }); + sslEngine.beginHandshake(); + + ByteBuffer encrypted = ByteBuffer.allocate(sslEngine.getSession().getPacketBufferSize()); + sslEngine.wrap(BufferUtil.EMPTY_BUFFER, encrypted); + encrypted.flip(); + + try (SocketChannel channel = SocketChannel.open(address)) + { + // Send ClientHello, immediately followed by TLS Close Alert and then by FIN + channel.write(encrypted); + sslEngine.closeOutbound(); + encrypted.clear(); + sslEngine.wrap(BufferUtil.EMPTY_BUFFER, encrypted); + encrypted.flip(); + channel.write(encrypted); + channel.shutdownOutput(); + + // Read ServerHello from server + encrypted.clear(); + int read = channel.read(encrypted); + encrypted.flip(); + Assert.assertTrue(read > 0); + // Cannot decrypt, as the SSLEngine has been already closed + + // Now if we read more, we should either read the TLS Close Alert, or directly -1 + encrypted.clear(); + read = channel.read(encrypted); + // Sending a TLS Close Alert during handshake results in an exception when + // unwrapping that the server react to by closing the connection abruptly. + Assert.assertTrue(read < 0); + } + } + + @Test + public void testAbruptCloseDuringHandshake() throws Exception + { + InetSocketAddress address = prepare(); + SslContextFactory sslContextFactory = newSslContextFactory(); + sslContextFactory.start(); + SSLEngine sslEngine = sslContextFactory.newSSLEngine(address); + sslEngine.setUseClientMode(true); + ALPN.put(sslEngine, new ALPN.ClientProvider() + { + @Override + public boolean supports() + { + return true; + } + + @Override + public void unsupported() + { + } + + @Override + public List protocols() + { + return null; + } + + @Override + public void selected(String s) + { + } + }); + sslEngine.beginHandshake(); + + ByteBuffer encrypted = ByteBuffer.allocate(sslEngine.getSession().getPacketBufferSize()); + sslEngine.wrap(BufferUtil.EMPTY_BUFFER, encrypted); + encrypted.flip(); + + try (SocketChannel channel = SocketChannel.open(address)) + { + // Send ClientHello, immediately followed by FIN (no TLS Close Alert) + channel.write(encrypted); + channel.shutdownOutput(); + + // Read ServerHello from server + encrypted.clear(); + int read = channel.read(encrypted); + encrypted.flip(); + Assert.assertTrue(read > 0); + ByteBuffer decrypted = ByteBuffer.allocate(sslEngine.getSession().getApplicationBufferSize()); + sslEngine.unwrap(encrypted, decrypted); + + // Now if we read more, we should either read the TLS Close Alert, or directly -1 + encrypted.clear(); + read = channel.read(encrypted); + // Since we have close the connection abruptly, the server also does so + Assert.assertTrue(read < 0); + } + } +} diff --git a/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractALPNTest.java b/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractALPNTest.java new file mode 100644 index 00000000000..4cdfcb324b7 --- /dev/null +++ b/jetty-spdy/spdy-alpn-tests/src/test/java/org/eclipse/jetty/spdy/server/AbstractALPNTest.java @@ -0,0 +1,77 @@ +// +// ======================================================================== +// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.spdy.server; + +import java.net.InetSocketAddress; + +import org.eclipse.jetty.alpn.ALPN; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.spdy.client.SPDYClient; +import org.eclipse.jetty.toolchain.test.TestTracker; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.eclipse.jetty.util.thread.QueuedThreadPool; +import org.junit.After; +import org.junit.Rule; + +public class AbstractALPNTest +{ + @Rule + public final TestTracker tracker = new TestTracker(); + protected Server server; + protected SPDYServerConnector connector; + protected SPDYClient.Factory clientFactory; + + protected InetSocketAddress prepare() throws Exception + { + server = new Server(); + connector = new SPDYServerConnector(server, newSslContextFactory(), null, new ALPNServerConnectionFactory("spdy/3", "spdy/2", "http/1.1")); + connector.setPort(0); + connector.setIdleTimeout(30000); + server.addConnector(connector); + server.start(); + + QueuedThreadPool threadPool = new QueuedThreadPool(); + threadPool.setName(threadPool.getName() + "-client"); + clientFactory = new SPDYClient.Factory(threadPool); + clientFactory.start(); + + ALPN.debug = true; + + return new InetSocketAddress("localhost", connector.getLocalPort()); + } + + protected SslContextFactory newSslContextFactory() + { + SslContextFactory sslContextFactory = new SslContextFactory(); + sslContextFactory.setKeyStorePath("src/test/resources/keystore.jks"); + sslContextFactory.setKeyStorePassword("storepwd"); + sslContextFactory.setTrustStorePath("src/test/resources/truststore.jks"); + sslContextFactory.setTrustStorePassword("storepwd"); + sslContextFactory.setProtocol("TLSv1"); + sslContextFactory.setIncludeProtocols("TLSv1"); + return sslContextFactory; + } + + @After + public void dispose() throws Exception + { + clientFactory.stop(); + server.stop(); + } +} diff --git a/jetty-spdy/spdy-alpn-tests/src/test/resources/jetty-logging.properties b/jetty-spdy/spdy-alpn-tests/src/test/resources/jetty-logging.properties new file mode 100644 index 00000000000..ead13ec1970 --- /dev/null +++ b/jetty-spdy/spdy-alpn-tests/src/test/resources/jetty-logging.properties @@ -0,0 +1,2 @@ +org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog +#org.eclipse.jetty.spdy.LEVEL=DEBUG diff --git a/jetty-spdy/spdy-alpn-tests/src/test/resources/keystore.jks b/jetty-spdy/spdy-alpn-tests/src/test/resources/keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..428ba54776ede2fdcdeedd879edb927c2abd9953 GIT binary patch literal 2206 zcmcgt`9Bkm8{cNkoMUp6gmShKn!AQX*(l6Nj(i=TnQPOKYtv{*Wg>ItE=Q!pRYH8a z$Sp#S#2lYw#aw;$y9u4T}83H*%lp zAKZay0sy=q1Qoo85aAQh;$ zD(c2EIN#D7WwYDLKUg!CotQPD@dp;5FR#bgaace(^x$6g5frD~(_b(MI^J&*A2DRp zf5Q2onfE(zvUb9|9C`66)YFRNM6~xrz4;iVbU=P|*YT2eWHFJJtr+M@zt2qPm)K~rRcqcs=LM12)PX0TT%QO zlf*xkqD3}7l)1J`5W(>=9nR0e6j-<79<11v3ZuXXcQpoCsqY~n`$FN+S}hcVm5Y>G zXnD{@DYs1@{S0z(lW+?86LWKtku$$-(khsh>0qRUXn=84`GRn?77M^_JY`durnN;KE zW#OJ`h<6xcB{I))ekGpc*Ylt}0cx4|OMBDPQvx4`r`}4Ze5_ipdObGMTi3bZHd5PC zcY0;?uBWu$PSvjJeb87nY7ghNv?%M@SoDl6IWt`bQCosfSh$#D6$ea~QhKM^ud2Ut z+9PYJuVpoELmN-A`F$BicO{BSYg@#tS%avVfb}DxL)|NanJ)#zB!2~?#Ot%H7--9N zU$bs0fS5G!m5M4&WK3#a|H|Tgw*?X-;H+Lu@kwA>qSR~7UC7b)7MJXTn6PG>n@8jP zW+}F^X$$c;U~4ryqRF; z>`j!tbLMK4ZGyY643|~?%Mu#fm!l%wAKjBDmd+VYmp3S#$scD$~bxbf|z#)hShN0*AhRaPDcmqrftGlHq4^54MM$Xfy(2> zH8QYVMzmn_oHbvJCB`IN~E&{1*h&0gEM{e zKvWvzp(!BqMX8`t#)~0nq}Wa zr6>FRPyp;AAB&)1$5@;r$23J{K&~>TWjZf7V$wFzmGM95CXhFG1cJNVAXks}C+&2- zbf9Qn*D8N}Afd2kpwDxns3%1uaFhAqDV8ksWiWY|quuLGZ0)SqrJ!Y8yX}@}IyC$C zQ3rCUsn}#>F#D8%D?q~ySy4j&he%Bs{{7V%rl!ui`@KQP?NTi+_iN{cwom&9RaMRR zB~z!hz|0HAgB9_Ijvpe-zr#jLbckJsc>vmo{+im?t8lA;N#fD4?{lb&J0V8Gocq%; f1ihv=QIDh{M_<9V+45Z2{KE4_qW}V3B0uV%GgrOJ literal 0 HcmV?d00001 diff --git a/jetty-spdy/spdy-alpn-tests/src/test/resources/truststore.jks b/jetty-spdy/spdy-alpn-tests/src/test/resources/truststore.jks new file mode 100644 index 0000000000000000000000000000000000000000..839cb8c35151c2b7c64afca24b6b72caad070a05 GIT binary patch literal 916 zcmezO_TO6u1_mY|W(3o$xs} zE~X|%Muz1J{3AIFGbaABoD&*5saD@gH|APIn|qhRGl}gsUzm=o9G*UXZaLfkb^*)o zjA*-gTf)`m_MQJYE&gJ}p^PHkrj!4^W|XX5a=N7A{;n#yaON&k_bHloe-^*hm?Z91 zlB>xeD=<(C>yn{9D54u}krkl}HQ(Uscha(++qf!T9y+xaEfnXd1O zi0)T?voO%;QH9LK;*_O3mBblqm)!31vU@hm;^%>mh5U@y3R%l0gzi`2yxH!+?kPOi zt!Tnsz1x9B3U2~8STZp)GB6^C5HPs_Lx_=~O<3xi>MmQ;D_g$D<_pdct`+TyzWTQ= zW5Finm(sGEe;ty^>vg$!cV)t>;H#Mev23$*WWBpyJ}Ir;RW+Htrt6{Pk&qz&-XG2@ z8@{&Lu%DX7m47Uny+-3w`=4V611q#Ub(U`xZCtSK^2LO^3(s|HW&N14dV4@A&(kX% z*S_eUPs-bSWRp>avt;CP@7K+G&3=b&1eO-s3f`;Cf91p#$)FW&xME3L8sEBQQDVCvfG>mdwqnk+GXd2ihXqpv z;usF(WoYYmu8DZZa4%1z=+hI+*gpkUykAy5tj#grb*gH!M6TqIcifYBGVe^&T#-2O K*=+x>r_BKeJV|!| literal 0 HcmV?d00001 diff --git a/jetty-spdy/spdy-http-server/src/main/java/org/eclipse/jetty/spdy/server/proxy/HTTPSPDYProxyServerConnector.java b/jetty-spdy/spdy-http-server/src/main/java/org/eclipse/jetty/spdy/server/proxy/HTTPSPDYProxyServerConnector.java index c9d040a7aa8..4c3015e6c12 100644 --- a/jetty-spdy/spdy-http-server/src/main/java/org/eclipse/jetty/spdy/server/proxy/HTTPSPDYProxyServerConnector.java +++ b/jetty-spdy/spdy-http-server/src/main/java/org/eclipse/jetty/spdy/server/proxy/HTTPSPDYProxyServerConnector.java @@ -19,12 +19,14 @@ package org.eclipse.jetty.spdy.server.proxy; -import org.eclipse.jetty.server.ConnectionFactory; +import java.util.Objects; + import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.spdy.api.SPDY; import org.eclipse.jetty.spdy.server.NPNServerConnectionFactory; +import org.eclipse.jetty.spdy.server.NegotiatingServerConnectionFactory; import org.eclipse.jetty.spdy.server.SPDYServerConnectionFactory; import org.eclipse.jetty.util.ssl.SslContextFactory; @@ -37,7 +39,7 @@ public class HTTPSPDYProxyServerConnector extends ServerConnector public HTTPSPDYProxyServerConnector(Server server, HttpConfiguration config, ProxyEngineSelector proxyEngineSelector) { - this(server, null, config, proxyEngineSelector); + super(server, (SslContextFactory)null, new ProxyHTTPConnectionFactory(config, SPDY.V2, proxyEngineSelector)); } public HTTPSPDYProxyServerConnector(Server server, SslContextFactory sslContextFactory, ProxyEngineSelector proxyEngineSelector) @@ -47,16 +49,15 @@ public class HTTPSPDYProxyServerConnector extends ServerConnector public HTTPSPDYProxyServerConnector(Server server, SslContextFactory sslContextFactory, HttpConfiguration config, ProxyEngineSelector proxyEngineSelector) { - super(server, - sslContextFactory, - sslContextFactory == null - ? new ConnectionFactory[]{new ProxyHTTPConnectionFactory(config, SPDY.V2, proxyEngineSelector)} - : new ConnectionFactory[]{new NPNServerConnectionFactory("spdy/3", "spdy/2", "http/1.1"), - new SPDYServerConnectionFactory(SPDY.V3, proxyEngineSelector), - new SPDYServerConnectionFactory(SPDY.V2, proxyEngineSelector), - new ProxyHTTPConnectionFactory(config, SPDY.V2, proxyEngineSelector)}); - NPNServerConnectionFactory npnConnectionFactory = getConnectionFactory(NPNServerConnectionFactory.class); - if (npnConnectionFactory != null) - npnConnectionFactory.setDefaultProtocol("http/1.1"); + this(server, sslContextFactory, config, proxyEngineSelector, new NPNServerConnectionFactory("spdy/3", "spdy/2", "http/1.1")); + } + + public HTTPSPDYProxyServerConnector(Server server, SslContextFactory sslContextFactory, HttpConfiguration config, ProxyEngineSelector proxyEngineSelector, NegotiatingServerConnectionFactory negotiatingFactory) + { + super(server, Objects.requireNonNull(sslContextFactory), negotiatingFactory, + new SPDYServerConnectionFactory(SPDY.V3, proxyEngineSelector), + new SPDYServerConnectionFactory(SPDY.V2, proxyEngineSelector), + new ProxyHTTPConnectionFactory(config, SPDY.V2, proxyEngineSelector)); + negotiatingFactory.setDefaultProtocol("http/1.1"); } } diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java index d31cb3b8767..0f450e2ce63 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPToSPDYTest.java @@ -50,18 +50,15 @@ import org.eclipse.jetty.spdy.client.SPDYClient; import org.eclipse.jetty.spdy.http.HTTPSPDYHeader; import org.eclipse.jetty.spdy.server.SPDYServerConnectionFactory; import org.eclipse.jetty.spdy.server.SPDYServerConnector; +import org.eclipse.jetty.toolchain.test.TestTracker; import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.Fields; import org.eclipse.jetty.util.Promise; -import org.eclipse.jetty.util.log.Log; -import org.eclipse.jetty.util.log.Logger; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -69,33 +66,19 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @RunWith(Parameterized.class) -public abstract class ProxyHTTPToSPDYTest +public class ProxyHTTPToSPDYTest { - private static final Logger LOG = Log.getLogger(ProxyHTTPToSPDYTest.class); - @Rule - public final TestWatcher testName = new TestWatcher() - { - - @Override - public void starting(Description description) - { - super.starting(description); - System.err.printf("Running %s.%s()%n", - description.getClassName(), - description.getMethodName()); - } - }; - - private final short version; - private HttpClient httpClient; - private HttpClient httpClient2; - @Parameterized.Parameters public static Collection parameters() { return Arrays.asList(new Short[]{SPDY.V2}, new Short[]{SPDY.V3}); } + @Rule + public final TestTracker tracker = new TestTracker(); + private final short version; + private HttpClient httpClient; + private HttpClient httpClient2; private SPDYClient.Factory factory; private Server server; private Server proxy; diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java index daafa57a5f9..94e481becf0 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPLoadTest.java @@ -39,6 +39,7 @@ import javax.servlet.http.HttpServletResponse; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; @@ -52,7 +53,9 @@ import org.eclipse.jetty.spdy.api.StreamFrameListener; import org.eclipse.jetty.spdy.api.StringDataInfo; import org.eclipse.jetty.spdy.api.SynInfo; import org.eclipse.jetty.spdy.client.SPDYClient; +import org.eclipse.jetty.spdy.server.NegotiatingServerConnectionFactory; import org.eclipse.jetty.spdy.server.http.SPDYTestUtils; +import org.eclipse.jetty.toolchain.test.TestTracker; import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.Fields; import org.eclipse.jetty.util.IO; @@ -65,8 +68,6 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -80,23 +81,6 @@ import static org.junit.Assert.assertThat; public abstract class ProxySPDYToHTTPLoadTest { private static final Logger LOG = Log.getLogger(ProxySPDYToHTTPLoadTest.class); - @Rule - public final TestWatcher testName = new TestWatcher() - { - - @Override - public void starting(Description description) - { - super.starting(description); - System.err.printf("Running %s.%s()%n", - description.getClassName(), - description.getMethodName()); - } - }; - - private final short version; - private final String server1String = "server1"; - private final String server2String = "server2"; @Parameterized.Parameters public static Collection parameters() @@ -104,6 +88,12 @@ public abstract class ProxySPDYToHTTPLoadTest return Arrays.asList(new Short[]{SPDY.V2}, new Short[]{SPDY.V3}); } + @Rule + public final TestTracker tracker = new TestTracker(); + private final short version; + private final NegotiatingServerConnectionFactory negotiator; + private final String server1String = "server1"; + private final String server2String = "server2"; private SPDYClient.Factory factory; private Server server1; private Server server2; @@ -111,9 +101,10 @@ public abstract class ProxySPDYToHTTPLoadTest private ServerConnector proxyConnector; private SslContextFactory sslContextFactory = SPDYTestUtils.newSslContextFactory(); - public ProxySPDYToHTTPLoadTest(short version) + public ProxySPDYToHTTPLoadTest(short version, NegotiatingServerConnectionFactory negotiator) { this.version = version; + this.negotiator = negotiator; } @Before @@ -187,7 +178,7 @@ public abstract class ProxySPDYToHTTPLoadTest proxyEngineSelector.putProxyServerInfo("127.0.0.2", new ProxyEngineSelector.ProxyServerInfo("http/1.1", server2.getHostName(), server2.getPort())); - proxyConnector = new HTTPSPDYProxyServerConnector(proxy, sslContextFactory, proxyEngineSelector); + proxyConnector = new HTTPSPDYProxyServerConnector(proxy, sslContextFactory, new HttpConfiguration(), proxyEngineSelector, negotiator); proxyConnector.setPort(0); proxyConnector.setIdleTimeout(proxyConnectorTimeout); proxy.addConnector(proxyConnector); diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java index ebbe785f501..56ee8184759 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToHTTPTest.java @@ -55,6 +55,7 @@ import org.eclipse.jetty.spdy.api.server.ServerSessionFrameListener; import org.eclipse.jetty.spdy.client.SPDYClient; import org.eclipse.jetty.spdy.http.HTTPSPDYHeader; import org.eclipse.jetty.spdy.server.http.SPDYTestUtils; +import org.eclipse.jetty.toolchain.test.TestTracker; import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.Fields; import org.eclipse.jetty.util.log.Log; @@ -65,8 +66,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -79,19 +78,7 @@ import static org.junit.Assert.assertThat; public abstract class ProxySPDYToHTTPTest { @Rule - public final TestWatcher testName = new TestWatcher() - { - - @Override - public void starting(Description description) - { - super.starting(description); - System.err.printf("Running %s.%s()%n", - description.getClassName(), - description.getMethodName()); - } - }; - + public final TestTracker tracker = new TestTracker(); private final short version; @Parameterized.Parameters diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java index fb7cbdfc628..564b32dc9ef 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYLoadTest.java @@ -48,6 +48,7 @@ import org.eclipse.jetty.spdy.client.SPDYClient; import org.eclipse.jetty.spdy.server.SPDYServerConnectionFactory; import org.eclipse.jetty.spdy.server.SPDYServerConnector; import org.eclipse.jetty.spdy.server.http.SPDYTestUtils; +import org.eclipse.jetty.toolchain.test.TestTracker; import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.Fields; import org.eclipse.jetty.util.ssl.SslContextFactory; @@ -56,8 +57,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -69,19 +68,7 @@ import static org.junit.Assert.assertThat; public abstract class ProxySPDYToSPDYLoadTest { @Rule - public final TestWatcher testName = new TestWatcher() - { - - @Override - public void starting(Description description) - { - super.starting(description); - System.err.printf("Running %s.%s()%n", - description.getClassName(), - description.getMethodName()); - } - }; - + public final TestTracker tracker = new TestTracker(); private final short version; @Parameterized.Parameters diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java index 44bb2326b8f..186afbe29ea 100644 --- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java +++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/proxy/ProxySPDYToSPDYTest.java @@ -49,6 +49,7 @@ import org.eclipse.jetty.spdy.http.HTTPSPDYHeader; import org.eclipse.jetty.spdy.server.SPDYServerConnectionFactory; import org.eclipse.jetty.spdy.server.SPDYServerConnector; import org.eclipse.jetty.spdy.server.http.SPDYTestUtils; +import org.eclipse.jetty.toolchain.test.TestTracker; import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.Fields; import org.eclipse.jetty.util.Promise; @@ -58,8 +59,6 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -70,18 +69,7 @@ import static org.junit.Assert.assertThat; public abstract class ProxySPDYToSPDYTest { @Rule - public final TestWatcher testName = new TestWatcher() - { - - @Override - public void starting(Description description) - { - super.starting(description); - System.err.printf("Running %s.%s()%n", - description.getClassName(), - description.getMethodName()); - } - }; + public final TestTracker tracker = new TestTracker(); private final short version; @Parameterized.Parameters diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/ProtocolNegotiationTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/NPNNegotiationTest.java similarity index 99% rename from jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/ProtocolNegotiationTest.java rename to jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/NPNNegotiationTest.java index e1b0df961b8..b8f2f10b865 100644 --- a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/ProtocolNegotiationTest.java +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/NPNNegotiationTest.java @@ -34,7 +34,7 @@ import org.eclipse.jetty.util.ssl.SslContextFactory; import org.junit.Assert; import org.junit.Test; -public class ProtocolNegotiationTest extends AbstractNPNTest +public class NPNNegotiationTest extends AbstractNPNTest { @Test public void testServerAdvertisingHTTPSpeaksHTTP() throws Exception diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java deleted file mode 100644 index edae46abbee..00000000000 --- a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxyHTTPToSPDYTest.java +++ /dev/null @@ -1,27 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - -package org.eclipse.jetty.spdy.server.proxy; - -public class NPNProxyHTTPToSPDYTest extends ProxyHTTPToSPDYTest -{ - public NPNProxyHTTPToSPDYTest(short version) - { - super(version); - } -} diff --git a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java index 290b6376762..355c597744f 100644 --- a/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java +++ b/jetty-spdy/spdy-npn-tests/src/test/java/org/eclipse/jetty/spdy/server/proxy/NPNProxySPDYToHTTPLoadTest.java @@ -18,10 +18,12 @@ package org.eclipse.jetty.spdy.server.proxy; +import org.eclipse.jetty.spdy.server.NPNServerConnectionFactory; + public class NPNProxySPDYToHTTPLoadTest extends ProxySPDYToHTTPLoadTest { public NPNProxySPDYToHTTPLoadTest(short version) { - super(version); + super(version, new NPNServerConnectionFactory("spdy/3", "spdy/2", "http/1.1")); } } From 48bd41ab83989f2ccd9c757484af74bd338f6af6 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Wed, 19 Mar 2014 00:12:37 +0100 Subject: [PATCH 008/114] Updated ALPN API version to 1.0.0. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9414082e29c..fa396835a64 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ 1.6.1 1.2 1.1.0.v20120525 - 1.0.0-SNAPSHOT + 1.0.0 scm:git:http://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project.git From 919e41114c893be1e8d8b2f6d18b237b0c0b2071 Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Thu, 20 Mar 2014 12:09:54 +0100 Subject: [PATCH 009/114] Updated POMs to use ALPN. TestJettyOSGiBootSpdy still not working. --- jetty-osgi/jetty-osgi-alpn/pom.xml | 47 +++++++++++++++++++ jetty-osgi/pom.xml | 1 + jetty-osgi/test-jetty-osgi/pom.xml | 15 +++--- .../osgi/test/TestJettyOSGiBootSpdy.java | 24 ++++------ jetty-spdy/spdy-server/pom.xml | 2 +- 5 files changed, 66 insertions(+), 23 deletions(-) create mode 100644 jetty-osgi/jetty-osgi-alpn/pom.xml diff --git a/jetty-osgi/jetty-osgi-alpn/pom.xml b/jetty-osgi/jetty-osgi-alpn/pom.xml new file mode 100644 index 00000000000..cffc1ea89d9 --- /dev/null +++ b/jetty-osgi/jetty-osgi-alpn/pom.xml @@ -0,0 +1,47 @@ + + + org.eclipse.jetty.osgi + jetty-osgi-project + 9.1.4-SNAPSHOT + + 4.0.0 + jetty-osgi-alpn + Jetty :: OSGi ALPN Fragment + jar + + org.eclipse.jetty.osgi.alpn.fragment + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.7 + + + parse-version + + parse-version + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + 2 + ${bundle-symbolic-name};singleton:=true + Jetty OSGi ALPN Fragment + ${parsedVersion.osgiVersion} + org.eclipse.jetty.alpn + system.bundle;extension:=framework + + + + + + + diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index 7e5db89ed43..a1048a38888 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -22,6 +22,7 @@ jetty-osgi-boot jetty-osgi-boot-jsp jetty-osgi-boot-warurl + jetty-osgi-alpn jetty-osgi-npn jetty-osgi-httpservice test-jetty-osgi-webapp diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index 239b33b1caf..bf37dfbb54e 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -87,7 +87,7 @@ - - - -Dmortbay-npn-boot=${settings.localRepository}/org/mortbay/jetty/npn/npn-boot/${npn.version}/npn-boot-${npn.version}.jar + + -Dmortbay-alpn-boot=${settings.localRepository}/org/mortbay/jetty/alpn/alpn-boot/${alpn.version}/alpn-boot-${alpn.version}.jar diff --git a/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootSpdy.java b/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootSpdy.java index 9558861cb0e..c7c7c33ddfb 100644 --- a/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootSpdy.java +++ b/jetty-osgi/test-jetty-osgi/src/test/java/org/eclipse/jetty/osgi/test/TestJettyOSGiBootSpdy.java @@ -90,18 +90,14 @@ public class TestJettyOSGiBootSpdy { List