From 77b91038dbcf770af2cbec2745c0c00c792a6c65 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Thu, 30 Jun 2016 18:58:46 +1000 Subject: [PATCH 1/3] Issue #663 Add automatic deployment of GCloudSessionManager/GCloudMemcachedSessionManager --- .../etc/gcloud-memcached-session-context.xml | 27 ++++++++ .../etc/jetty-gcloud-memcached-sessions.xml | 27 ++++++++ .../modules/gcloud-memcached-sessions.mod | 6 +- .../config/etc/gcloud-session-context.xml | 25 ++++++++ .../config/etc/jetty-gcloud-session-idmgr.xml | 19 ++++++ .../main/config/etc/jetty-gcloud-sessions.xml | 26 +++++--- .../config/modules/gcloud-session-idmgr.mod | 63 +++++++++++++++++++ .../main/config/modules/gcloud-sessions.mod | 54 +--------------- 8 files changed, 184 insertions(+), 63 deletions(-) create mode 100644 jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/gcloud-memcached-session-context.xml create mode 100644 jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/jetty-gcloud-memcached-sessions.xml create mode 100644 jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/gcloud-session-context.xml create mode 100644 jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-session-idmgr.xml create mode 100644 jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-session-idmgr.mod diff --git a/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/gcloud-memcached-session-context.xml b/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/gcloud-memcached-session-context.xml new file mode 100644 index 00000000000..1580624b7c3 --- /dev/null +++ b/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/gcloud-memcached-session-context.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + 600 + localhost + 11211 + + + + + + diff --git a/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/jetty-gcloud-memcached-sessions.xml b/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/jetty-gcloud-memcached-sessions.xml new file mode 100644 index 00000000000..38b81ba5ea0 --- /dev/null +++ b/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/etc/jetty-gcloud-memcached-sessions.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + deployed + starting + customise + + + + + /etc/gcloud-memcached-session-context.xml + + + + + + diff --git a/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/modules/gcloud-memcached-sessions.mod b/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/modules/gcloud-memcached-sessions.mod index f67153e3177..83697c42006 100644 --- a/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/modules/gcloud-memcached-sessions.mod +++ b/jetty-gcloud/jetty-gcloud-memcached-session-manager/src/main/config/modules/gcloud-memcached-sessions.mod @@ -4,7 +4,7 @@ [depend] ext -gcloud-sessions +gcloud-session-idmgr [files] @@ -15,6 +15,10 @@ maven://org.slf4j/slf4j-api/1.6.6|lib/ext/slf4j-api-1.6.6.jar lib/jetty-gcloud-memcached-session-manager-${jetty.version}.jar lib/xmemcached/*.jar + +[xml] +etc/jetty-gcloud-memcached-sessions.xml + [license] Xmemcached is an open source project hosted on Github and released under the Apache 2.0 license. https://github.com/killme2008/xmemcached diff --git a/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/gcloud-session-context.xml b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/gcloud-session-context.xml new file mode 100644 index 00000000000..111c2ca643a --- /dev/null +++ b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/gcloud-session-context.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + 600 + + + + + + diff --git a/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-session-idmgr.xml b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-session-idmgr.xml new file mode 100644 index 00000000000..3ca24feb178 --- /dev/null +++ b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-session-idmgr.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + node + + + + diff --git a/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-sessions.xml b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-sessions.xml index 3ca24feb178..dc0a4741518 100644 --- a/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-sessions.xml +++ b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/etc/jetty-gcloud-sessions.xml @@ -3,17 +3,25 @@ + + + + - - - - - + + + + deployed + starting + customise + + - + + /etc/gcloud-session-context.xml + - node - - + + diff --git a/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-session-idmgr.mod b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-session-idmgr.mod new file mode 100644 index 00000000000..06f8cd32435 --- /dev/null +++ b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-session-idmgr.mod @@ -0,0 +1,63 @@ +# +# Jetty GCloudDatastore SessionIdManager module +# + +[depend] +annotations +webapp + +[files] +maven://com.google.cloud/gcloud-java-datastore/0.2.3|lib/gcloud/gcloud-java-datastore-0.2.3.jar +maven://com.google.cloud/gcloud-java-core/0.2.3|lib/gcloud/gcloud-java-core-0.2.3.jar +maven://com.google.auth/google-auth-library-credentials/0.3.1|lib/gcloud/google-auth-library-credentials-0.3.1.jar +maven://com.google.auth/google-auth-library-oauth2-http/0.3.1|lib/gcloud/google-auth-library-oauth2-http-0.3.1.jar +maven://com.google.http-client/google-http-client-jackson2/1.19.0|lib/gcloud/google-http-client-jackson2-1.19.0.jar +maven://com.fasterxml.jackson.core/jackson-core/2.1.3|lib/gcloud/jackson-core-2.1.3.jar +maven://com.google.http-client/google-http-client/1.21.0|lib/gcloud/google-http-client-1.21.0.jar +maven://com.google.code.findbugs/jsr305/1.3.9|lib/gcloud/jsr305-1.3.9.jar +maven://org.apache.httpcomponents/httpclient/4.0.1|lib/gcloud/httpclient-4.0.1.jar +maven://org.apache.httpcomponents/httpcore/4.0.1|lib/gcloud/httpcore-4.0.1.jar +maven://commons-logging/commons-logging/1.1.1|lib/gcloud/commons-logging-1.1.1.jar +maven://commons-codec/commons-codec/1.3|lib/gcloud/commons-codec-1.3.jar +maven://com.google.oauth-client/google-oauth-client/1.21.0|lib/gcloud/google-oauth-client-1.21.0.jar +maven://com.google.guava/guava/19.0|lib/gcloud/guava-19.0.jar +maven://com.google.api-client/google-api-client-appengine/1.21.0|lib/gcloud/google-api-client-appengine-1.21.0.jar +maven://com.google.oauth-client/google-oauth-client-appengine/1.21.0|lib/gcloud/google-oauth-client-appengine-1.21.0.jar +maven://com.google.oauth-client/google-oauth-client-servlet/1.21.0|lib/gcloud/google-oauth-client-servlet-1.21.0.jar +maven://com.google.http-client/google-http-client-jdo/1.21.0|lib/gcloud/google-http-client-jdo-1.21.0.jar +maven://com.google.api-client/google-api-client-servlet/1.21.0|lib/gcloud/google-api-client-servlet-1.21.0.jar +maven://javax.jdo/jdo2-api/2.3-eb|lib/gcloud/jdo2-api-2.3-eb.jar +maven://javax.transaction/transaction-api/1.1|lib/gcloud/transaction-api-1.1.jar +maven://com.google.http-client/google-http-client-appengine/1.21.0|lib/gcloud/google-http-client-appengine-1.21.0.jar +maven://com.google.http-client/google-http-client-jackson/1.21.0|lib/gcloud/google-http-client-jackson-1.21.0.jar +maven://org.codehaus.jackson/jackson-core-asl/1.9.11|lib/gcloud/jackson-core-asl-1.9.11.jar +maven://joda-time/joda-time/2.9.2|lib/gcloud/joda-time-2.9.2.jar +maven://org.json/json/20151123|lib/gcloud/json-20151123.jar +maven://com.google.cloud.datastore/datastore-v1beta3-protos/1.0.0-beta|lib/gcloud/datastore-v1beta3-protos-1.0.0-beta.jar +maven://com.google.protobuf/protobuf-java/3.0.0-beta-1|lib/gcloud/protobuf-java-3.0.0-beta-1.jar +maven://com.google.cloud.datastore/datastore-v1beta3-proto-client/1.0.0-beta.2|lib/gcloud/datastore-v1beta3-proto-client-1.0.0-beta.2.jar +maven://com.google.http-client/google-http-client-protobuf/1.20.0|lib/gcloud/google-http-client-protobuf-1.20.0.jar +maven://com.google.api-client/google-api-client/1.20.0|lib/gcloud/google-api-client-1.20.0.jar +maven://com.google.guava/guava-jdk5/13.0|lib/gcloud/guava-jdk5-13.0.jar + + + +[lib] +lib/jetty-gcloud-session-manager-${jetty.version}.jar +lib/gcloud/*.jar + +[xml] +etc/jetty-gcloud-session-idmgr.xml + +[license] +GCloudDatastore is an open source project hosted on Github and released under the Apache 2.0 license. +https://github.com/GoogleCloudPlatform/gcloud-java +http://www.apache.org/licenses/LICENSE-2.0.html + +[ini-template] +## Unique identifier to force the workername for this node in the cluster +## If not set, will default to the string "node" plus the Env variable $GAE_MODULE_INSTANCE +# jetty.gcloudSession.workerName=node1 + + + diff --git a/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-sessions.mod b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-sessions.mod index 9cb9591a66a..89e5bb7d65c 100644 --- a/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-sessions.mod +++ b/jetty-gcloud/jetty-gcloud-session-manager/src/main/config/modules/gcloud-sessions.mod @@ -3,61 +3,9 @@ # [depend] -annotations -webapp +gcloud-session-idmgr -[files] -maven://com.google.cloud/gcloud-java-datastore/0.2.3|lib/gcloud/gcloud-java-datastore-0.2.3.jar -maven://com.google.cloud/gcloud-java-core/0.2.3|lib/gcloud/gcloud-java-core-0.2.3.jar -maven://com.google.auth/google-auth-library-credentials/0.3.1|lib/gcloud/google-auth-library-credentials-0.3.1.jar -maven://com.google.auth/google-auth-library-oauth2-http/0.3.1|lib/gcloud/google-auth-library-oauth2-http-0.3.1.jar -maven://com.google.http-client/google-http-client-jackson2/1.19.0|lib/gcloud/google-http-client-jackson2-1.19.0.jar -maven://com.fasterxml.jackson.core/jackson-core/2.1.3|lib/gcloud/jackson-core-2.1.3.jar -maven://com.google.http-client/google-http-client/1.21.0|lib/gcloud/google-http-client-1.21.0.jar -maven://com.google.code.findbugs/jsr305/1.3.9|lib/gcloud/jsr305-1.3.9.jar -maven://org.apache.httpcomponents/httpclient/4.0.1|lib/gcloud/httpclient-4.0.1.jar -maven://org.apache.httpcomponents/httpcore/4.0.1|lib/gcloud/httpcore-4.0.1.jar -maven://commons-logging/commons-logging/1.1.1|lib/gcloud/commons-logging-1.1.1.jar -maven://commons-codec/commons-codec/1.3|lib/gcloud/commons-codec-1.3.jar -maven://com.google.oauth-client/google-oauth-client/1.21.0|lib/gcloud/google-oauth-client-1.21.0.jar -maven://com.google.guava/guava/19.0|lib/gcloud/guava-19.0.jar -maven://com.google.api-client/google-api-client-appengine/1.21.0|lib/gcloud/google-api-client-appengine-1.21.0.jar -maven://com.google.oauth-client/google-oauth-client-appengine/1.21.0|lib/gcloud/google-oauth-client-appengine-1.21.0.jar -maven://com.google.oauth-client/google-oauth-client-servlet/1.21.0|lib/gcloud/google-oauth-client-servlet-1.21.0.jar -maven://com.google.http-client/google-http-client-jdo/1.21.0|lib/gcloud/google-http-client-jdo-1.21.0.jar -maven://com.google.api-client/google-api-client-servlet/1.21.0|lib/gcloud/google-api-client-servlet-1.21.0.jar -maven://javax.jdo/jdo2-api/2.3-eb|lib/gcloud/jdo2-api-2.3-eb.jar -maven://javax.transaction/transaction-api/1.1|lib/gcloud/transaction-api-1.1.jar -maven://com.google.http-client/google-http-client-appengine/1.21.0|lib/gcloud/google-http-client-appengine-1.21.0.jar -maven://com.google.http-client/google-http-client-jackson/1.21.0|lib/gcloud/google-http-client-jackson-1.21.0.jar -maven://org.codehaus.jackson/jackson-core-asl/1.9.11|lib/gcloud/jackson-core-asl-1.9.11.jar -maven://joda-time/joda-time/2.9.2|lib/gcloud/joda-time-2.9.2.jar -maven://org.json/json/20151123|lib/gcloud/json-20151123.jar -maven://com.google.cloud.datastore/datastore-v1beta3-protos/1.0.0-beta|lib/gcloud/datastore-v1beta3-protos-1.0.0-beta.jar -maven://com.google.protobuf/protobuf-java/3.0.0-beta-1|lib/gcloud/protobuf-java-3.0.0-beta-1.jar -maven://com.google.cloud.datastore/datastore-v1beta3-proto-client/1.0.0-beta.2|lib/gcloud/datastore-v1beta3-proto-client-1.0.0-beta.2.jar -maven://com.google.http-client/google-http-client-protobuf/1.20.0|lib/gcloud/google-http-client-protobuf-1.20.0.jar -maven://com.google.api-client/google-api-client/1.20.0|lib/gcloud/google-api-client-1.20.0.jar -maven://com.google.guava/guava-jdk5/13.0|lib/gcloud/guava-jdk5-13.0.jar - - - -[lib] -lib/jetty-gcloud-session-manager-${jetty.version}.jar -lib/gcloud/*.jar [xml] etc/jetty-gcloud-sessions.xml -[license] -GCloudDatastore is an open source project hosted on Github and released under the Apache 2.0 license. -https://github.com/GoogleCloudPlatform/gcloud-java -http://www.apache.org/licenses/LICENSE-2.0.html - -[ini-template] -## Unique identifier to force the workername for this node in the cluster -## If not set, will default to the string "node" plus the Env variable $GAE_MODULE_INSTANCE -# jetty.gcloudSession.workerName=node1 - - - From 3a52b461154042e194d2543e1448328076079434 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Fri, 1 Jul 2016 15:05:27 +1000 Subject: [PATCH 2/3] Provisional fix for #681 --- .../eclipse/jetty/io/ssl/SslConnection.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java index de5c8fdd7b4..20e6c2b0f3b 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java @@ -92,6 +92,7 @@ public class SslConnection extends AbstractConnection private final boolean _encryptedDirectBuffers = true; private final boolean _decryptedDirectBuffers = false; private boolean _renegotiationAllowed; + private boolean _closedOutbound; private final Runnable _runCompletWrite = new Runnable() { @Override @@ -913,19 +914,23 @@ public class SslConnection extends AbstractConnection @Override public void shutdownOutput() { - boolean ishut = isInputShutdown(); - boolean oshut = isOutputShutdown(); - if (LOG.isDebugEnabled()) - LOG.debug("{} shutdownOutput: oshut={}, ishut={}", SslConnection.this, oshut, ishut); try { synchronized (this) { + boolean ishut = isInputShutdown(); + boolean oshut = isOutputShutdown(); + if (LOG.isDebugEnabled()) + LOG.debug("{} shutdownOutput: oshut={}, ishut={}", SslConnection.this, oshut, ishut); + if (!oshut) { - _sslEngine.closeOutbound(); - // Send the TLS close message. - flush(BufferUtil.EMPTY_BUFFER); + if (!_closedOutbound) + { + _closedOutbound=true; // Only attempt this once + _sslEngine.closeOutbound(); + flush(BufferUtil.EMPTY_BUFFER); // Send the TLS close message. + } if (ishut) getEndPoint().close(); else From 29e6c6c4a487e99d8f1fa1474b2a1cfe96eefb21 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Fri, 1 Jul 2016 17:48:32 +1000 Subject: [PATCH 3/3] Issue #682 --- jetty-quickstart/README.txt | 6 ------ .../java/org/eclipse/jetty/quickstart/QuickStartWebApp.java | 1 - 2 files changed, 7 deletions(-) delete mode 100644 jetty-quickstart/README.txt diff --git a/jetty-quickstart/README.txt b/jetty-quickstart/README.txt deleted file mode 100644 index 43ad7f3e9f8..00000000000 --- a/jetty-quickstart/README.txt +++ /dev/null @@ -1,6 +0,0 @@ -mvn exec:java -Dexec.classpathScope=test -Dexec.mainClass="org.eclipse.jetty.quickstart.StartBenchmarkWar" - -OR - -mvn exec:java -Dexec.classpathScope=test -Dexec.mainClass="org.eclipse.jetty.quickstart.PreconfigureBenchmarkWar" -mvn exec:java -Dexec.classpathScope=test -Dexec.mainClass="org.eclipse.jetty.quickstart.QuickStartBenchmarkWar" diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java index 5116620109e..fc089092acc 100644 --- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java +++ b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java @@ -62,7 +62,6 @@ public class QuickStartWebApp extends WebAppContext { super(); setConfigurationClasses(__preconfigurationClasses); - setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern",".*\\.jar"); } public boolean isPreconfigure()