This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.1 by this push:
new 5308cc81bf Fix tri headerfilter 3.1 (#12070)
5308cc81bf is described below
commit 5308cc81bfb2eb22948b6287e279b4d807c5846e
Author: earthchen <[email protected]>
AuthorDate: Wed Apr 12 19:46:15 2023 +0800
Fix tri headerfilter 3.1 (#12070)
* change headerfilter scope
* fix tri header filter
---
.../java/org/apache/dubbo/rpc/HeaderFilter.java | 3 +-
.../rpc/protocol/tri/TripleHttp2Protocol.java | 37 ++++++++--------------
2 files changed, 16 insertions(+), 24 deletions(-)
diff --git
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/HeaderFilter.java
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/HeaderFilter.java
index e82b697f3e..983c8c5d8b 100644
---
a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/HeaderFilter.java
+++
b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/HeaderFilter.java
@@ -16,9 +16,10 @@
*/
package org.apache.dubbo.rpc;
+import org.apache.dubbo.common.extension.ExtensionScope;
import org.apache.dubbo.common.extension.SPI;
-@SPI
+@SPI(scope = ExtensionScope.FRAMEWORK)
public interface HeaderFilter {
RpcInvocation invoke(Invoker<?> invoker, RpcInvocation invocation) throws
RpcException;
diff --git
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
index 6fba53857c..692621ce04 100644
---
a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
+++
b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/TripleHttp2Protocol.java
@@ -17,6 +17,16 @@
package org.apache.dubbo.rpc.protocol.tri;
+import io.netty.channel.Channel;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.ChannelPipeline;
+import io.netty.handler.codec.http2.Http2FrameCodec;
+import io.netty.handler.codec.http2.Http2FrameCodecBuilder;
+import io.netty.handler.codec.http2.Http2FrameLogger;
+import io.netty.handler.codec.http2.Http2MultiplexHandler;
+import io.netty.handler.codec.http2.Http2Settings;
+import io.netty.handler.logging.LogLevel;
+import io.netty.handler.ssl.SslContext;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.config.Configuration;
import org.apache.dubbo.common.config.ConfigurationUtils;
@@ -28,7 +38,6 @@ import org.apache.dubbo.remoting.api.AbstractWireProtocol;
import org.apache.dubbo.remoting.api.pu.ChannelHandlerPretender;
import org.apache.dubbo.remoting.api.pu.ChannelOperator;
import org.apache.dubbo.rpc.HeaderFilter;
-import org.apache.dubbo.rpc.model.ApplicationModel;
import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.model.ScopeModelAware;
import org.apache.dubbo.rpc.protocol.tri.transport.TripleClientHandler;
@@ -37,17 +46,6 @@ import
org.apache.dubbo.rpc.protocol.tri.transport.TripleHttp2FrameServerHandler
import
org.apache.dubbo.rpc.protocol.tri.transport.TripleServerConnectionHandler;
import org.apache.dubbo.rpc.protocol.tri.transport.TripleTailHandler;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelInitializer;
-import io.netty.channel.ChannelPipeline;
-import io.netty.handler.codec.http2.Http2FrameCodec;
-import io.netty.handler.codec.http2.Http2FrameCodecBuilder;
-import io.netty.handler.codec.http2.Http2FrameLogger;
-import io.netty.handler.codec.http2.Http2MultiplexHandler;
-import io.netty.handler.codec.http2.Http2Settings;
-import io.netty.handler.logging.LogLevel;
-import io.netty.handler.ssl.SslContext;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -79,8 +77,6 @@ public class TripleHttp2Protocol extends AbstractWireProtocol
implements ScopeMo
private ExtensionLoader<HeaderFilter> filtersLoader;
private FrameworkModel frameworkModel;
- private Configuration config = ConfigurationUtils.getGlobalConfiguration(
- ApplicationModel.defaultModel());
public TripleHttp2Protocol() {
super(new Http2ProtocolDetector());
@@ -89,12 +85,7 @@ public class TripleHttp2Protocol extends
AbstractWireProtocol implements ScopeMo
@Override
public void setFrameworkModel(FrameworkModel frameworkModel) {
this.frameworkModel = frameworkModel;
- }
-
- @Override
- public void setApplicationModel(ApplicationModel applicationModel) {
- this.config =
ConfigurationUtils.getGlobalConfiguration(applicationModel);
- this.filtersLoader =
applicationModel.getExtensionLoader(HeaderFilter.class);
+ this.filtersLoader =
frameworkModel.getExtensionLoader(HeaderFilter.class);
}
@Override
@@ -104,11 +95,10 @@ public class TripleHttp2Protocol extends
AbstractWireProtocol implements ScopeMo
@Override
public void configServerProtocolHandler(URL url, ChannelOperator operator)
{
-
+ Configuration config =
ConfigurationUtils.getGlobalConfiguration(url.getOrDefaultApplicationModel());
final List<HeaderFilter> headFilters;
if (filtersLoader != null) {
- headFilters = filtersLoader.getActivateExtension(url,
- HEADER_FILTER_KEY);
+ headFilters = filtersLoader.getActivateExtension(url,
HEADER_FILTER_KEY);
} else {
headFilters = Collections.emptyList();
}
@@ -154,6 +144,7 @@ public class TripleHttp2Protocol extends
AbstractWireProtocol implements ScopeMo
@Override
public void configClientPipeline(URL url, ChannelPipeline pipeline,
SslContext sslContext) {
+ Configuration config =
ConfigurationUtils.getGlobalConfiguration(url.getOrDefaultApplicationModel());
final Http2FrameCodec codec = Http2FrameCodecBuilder.forClient()
.gracefulShutdownTimeoutMillis(10000)
.initialSettings(new Http2Settings().headerTableSize(