You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2019/12/10 10:23:40 UTC

[tomcat] branch master updated: Refactor to avoid cast

This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/master by this push:
     new 3fd2268  Refactor to avoid cast
3fd2268 is described below

commit 3fd2268aa9abaedfd328c7ab0295daf32d31f638
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Dec 10 10:23:04 2019 +0000

    Refactor to avoid cast
---
 java/org/apache/coyote/UpgradeProtocol.java              | 16 ++++++++++++++++
 .../org/apache/coyote/http11/AbstractHttp11Protocol.java |  5 +----
 java/org/apache/coyote/http2/Http2Protocol.java          |  9 +++++----
 3 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/java/org/apache/coyote/UpgradeProtocol.java b/java/org/apache/coyote/UpgradeProtocol.java
index 6fdb29a..dc840df 100644
--- a/java/org/apache/coyote/UpgradeProtocol.java
+++ b/java/org/apache/coyote/UpgradeProtocol.java
@@ -91,4 +91,20 @@ public interface UpgradeProtocol {
      *         <code>false</code>
      */
     public boolean accept(Request request);
+
+
+    /**
+     * Configure the HTTP/1.1 protocol that this UpgradeProcotol is nested
+     * under. Connections passed to this UpgradeProtocol via HTTP upgrade will
+     * have been initially handled by this HTTP/1.1 protocol implementation.
+     * <p>
+     * The default implementation is a NO-OP.
+     *
+     * @param protocol The HTTP/1.1 protocol implementation that will initially
+     *                 handle any connections passed to this UpgradeProtocol via
+     *                 the HTTP upgrade mechanism
+     */
+    public default void setHttp11Protocol(AbstractProtocol<?> protocol) {
+        // NO-OP
+    }
 }
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index e8a5b91..9189b59 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -39,7 +39,6 @@ import org.apache.coyote.UpgradeToken;
 import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
 import org.apache.coyote.http11.upgrade.UpgradeProcessorExternal;
 import org.apache.coyote.http11.upgrade.UpgradeProcessorInternal;
-import org.apache.coyote.http2.Http2Protocol;
 import org.apache.tomcat.util.buf.StringUtils;
 import org.apache.tomcat.util.net.AbstractEndpoint;
 import org.apache.tomcat.util.net.SSLHostConfig;
@@ -500,9 +499,7 @@ public abstract class AbstractHttp11Protocol<S> extends AbstractProtocol<S> {
             }
         }
 
-        if (upgradeProtocol instanceof Http2Protocol) {
-            ((Http2Protocol) upgradeProtocol).setHttp11Protocol(this);
-        }
+        upgradeProtocol.setHttp11Protocol(this);
     }
     @Override
     public UpgradeProtocol getNegotiatedProtocol(String negotiatedName) {
diff --git a/java/org/apache/coyote/http2/Http2Protocol.java b/java/org/apache/coyote/http2/Http2Protocol.java
index f8ee7ec..ed23505 100644
--- a/java/org/apache/coyote/http2/Http2Protocol.java
+++ b/java/org/apache/coyote/http2/Http2Protocol.java
@@ -27,6 +27,7 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
 
+import org.apache.coyote.AbstractProtocol;
 import org.apache.coyote.Adapter;
 import org.apache.coyote.CompressionConfig;
 import org.apache.coyote.Processor;
@@ -34,7 +35,6 @@ import org.apache.coyote.Request;
 import org.apache.coyote.Response;
 import org.apache.coyote.UpgradeProtocol;
 import org.apache.coyote.UpgradeToken;
-import org.apache.coyote.http11.AbstractHttp11Protocol;
 import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
 import org.apache.coyote.http11.upgrade.UpgradeProcessorInternal;
 import org.apache.tomcat.util.buf.StringUtils;
@@ -93,7 +93,7 @@ public class Http2Protocol implements UpgradeProtocol {
     // Compression
     private final CompressionConfig compressionConfig = new CompressionConfig();
     // Reference to HTTP/1.1 protocol that this instance is configured under
-    private AbstractHttp11Protocol<?> http11Protocol = null;
+    private AbstractProtocol<?> http11Protocol = null;
 
     @Override
     public String getHttpUpgradeName(boolean isSSLEnabled) {
@@ -423,10 +423,11 @@ public class Http2Protocol implements UpgradeProtocol {
     }
 
 
-    public AbstractHttp11Protocol<?> getHttp11Protocol() {
+    public AbstractProtocol<?> getHttp11Protocol() {
         return this.http11Protocol;
     }
-    public void setHttp11Protocol(AbstractHttp11Protocol<?> http11Protocol) {
+    @Override
+    public void setHttp11Protocol(AbstractProtocol<?> http11Protocol) {
         this.http11Protocol = http11Protocol;
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org