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

liujun pushed a commit to branch performance-tuning-2.7.x
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/performance-tuning-2.7.x by 
this push:
     new 276c0a3  performance tuning: avoid duplicate channel status check 
(#4254)
276c0a3 is described below

commit 276c0a3e57453d575688a496c0da0cc3d5705aa2
Author: ken.lj <ken.lj...@gmail.com>
AuthorDate: Wed Jun 5 15:43:47 2019 +0800

    performance tuning: avoid duplicate channel status check (#4254)
---
 .../support/header/HeaderExchangeChannel.java      |  6 ++
 .../support/header/HeaderExchangeHandler.java      | 65 +++++++++-------------
 .../remoting/transport/netty4/NettyChannel.java    | 30 +++++++++-
 .../remoting/transport/netty4/NettyClient.java     |  6 +-
 .../transport/netty4/NettyClientHandler.java       | 38 +++++--------
 .../transport/netty4/NettyCodecAdapter.java        | 42 ++++++--------
 .../transport/netty4/NettyServerHandler.java       | 24 ++------
 .../rpc/protocol/dubbo/DecodeableRpcResult.java    |  1 -
 .../dubbo/rpc/protocol/rest/RestProtocolTest.java  | 20 +++----
 9 files changed, 109 insertions(+), 123 deletions(-)

diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java
index f96207b..b954612 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java
@@ -76,6 +76,12 @@ final class HeaderExchangeChannel implements ExchangeChannel 
{
         }
     }
 
+    static void removeChannel(Channel ch) {
+        if (ch != null) {
+            ch.removeAttribute(CHANNEL_KEY);
+        }
+    }
+
     @Override
     public void send(Object message) throws RemotingException {
         send(message, false);
diff --git 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
index 23fe27c..d60c9ca 100644
--- 
a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
+++ 
b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
@@ -108,8 +108,6 @@ public class HeaderExchangeHandler implements 
ChannelHandlerDelegate {
                     channel.send(res);
                 } catch (RemotingException e) {
                     logger.warn("Send result to consumer failed, channel is " 
+ channel + ", msg is " + e);
-                } finally {
-                    // 
HeaderExchangeChannel.removeChannelIfDisconnected(channel);
                 }
             });
         } catch (Throwable e) {
@@ -122,11 +120,7 @@ public class HeaderExchangeHandler implements 
ChannelHandlerDelegate {
     @Override
     public void connected(Channel channel) throws RemotingException {
         ExchangeChannel exchangeChannel = 
HeaderExchangeChannel.getOrAddChannel(channel);
-        try {
-            handler.connected(exchangeChannel);
-        } finally {
-            HeaderExchangeChannel.removeChannelIfDisconnected(channel);
-        }
+        handler.connected(exchangeChannel);
     }
 
     @Override
@@ -136,7 +130,7 @@ public class HeaderExchangeHandler implements 
ChannelHandlerDelegate {
             handler.disconnected(exchangeChannel);
         } finally {
             DefaultFuture.closeChannel(channel);
-            HeaderExchangeChannel.removeChannelIfDisconnected(channel);
+            HeaderExchangeChannel.removeChannel(channel);
         }
     }
 
@@ -145,13 +139,10 @@ public class HeaderExchangeHandler implements 
ChannelHandlerDelegate {
         Throwable exception = null;
         try {
             ExchangeChannel exchangeChannel = 
HeaderExchangeChannel.getOrAddChannel(channel);
-            try {
-                handler.sent(exchangeChannel, message);
-            } finally {
-                HeaderExchangeChannel.removeChannelIfDisconnected(channel);
-            }
+            handler.sent(exchangeChannel, message);
         } catch (Throwable t) {
             exception = t;
+            HeaderExchangeChannel.removeChannelIfDisconnected(channel);
         }
         if (message instanceof Request) {
             Request request = (Request) message;
@@ -172,36 +163,32 @@ public class HeaderExchangeHandler implements 
ChannelHandlerDelegate {
     @Override
     public void received(Channel channel, Object message) throws 
RemotingException {
         final ExchangeChannel exchangeChannel = 
HeaderExchangeChannel.getOrAddChannel(channel);
-        try {
-            if (message instanceof Request) {
-                // handle request.
-                Request request = (Request) message;
-                if (request.isEvent()) {
-                    handlerEvent(channel, request);
-                } else {
-                    if (request.isTwoWay()) {
-                        handleRequest(exchangeChannel, request);
-                    } else {
-                        handler.received(exchangeChannel, request.getData());
-                    }
-                }
-            } else if (message instanceof Response) {
-                handleResponse(channel, (Response) message);
-            } else if (message instanceof String) {
-                if (isClientSide(channel)) {
-                    Exception e = new Exception("Dubbo client can not 
supported string message: " + message + " in channel: " + channel + ", url: " + 
channel.getUrl());
-                    logger.error(e.getMessage(), e);
+        if (message instanceof Request) {
+            // handle request.
+            Request request = (Request) message;
+            if (request.isEvent()) {
+                handlerEvent(channel, request);
+            } else {
+                if (request.isTwoWay()) {
+                    handleRequest(exchangeChannel, request);
                 } else {
-                    String echo = handler.telnet(channel, (String) message);
-                    if (echo != null && echo.length() > 0) {
-                        channel.send(echo);
-                    }
+                    handler.received(exchangeChannel, request.getData());
                 }
+            }
+        } else if (message instanceof Response) {
+            handleResponse(channel, (Response) message);
+        } else if (message instanceof String) {
+            if (isClientSide(channel)) {
+                Exception e = new Exception("Dubbo client can not supported 
string message: " + message + " in channel: " + channel + ", url: " + 
channel.getUrl());
+                logger.error(e.getMessage(), e);
             } else {
-                handler.received(exchangeChannel, message);
+                String echo = handler.telnet(channel, (String) message);
+                if (echo != null && echo.length() > 0) {
+                    channel.send(echo);
+                }
             }
-        } finally {
-            HeaderExchangeChannel.removeChannelIfDisconnected(channel);
+        } else {
+            handler.received(exchangeChannel, message);
         }
     }
 
diff --git 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java
 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java
index f8bbcf6..d0dfa7c 100644
--- 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java
+++ 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyChannel.java
@@ -30,6 +30,7 @@ import java.net.InetSocketAddress;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;
 import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
@@ -50,6 +51,9 @@ final class NettyChannel extends AbstractChannel {
     private final Channel channel;
 
     private final Map<String, Object> attributes = new 
ConcurrentHashMap<String, Object>();
+
+    private final AtomicBoolean active = new AtomicBoolean(false);
+
     /**
      * The constructor of NettyChannel.
      * It is private so NettyChannel usually create by {@link 
NettyChannel#getOrAddChannel(Channel, URL, ChannelHandler)}
@@ -82,6 +86,7 @@ final class NettyChannel extends AbstractChannel {
         if (ret == null) {
             NettyChannel nettyChannel = new NettyChannel(ch, url, handler);
             if (ch.isActive()) {
+                nettyChannel.markActive(true);
                 ret = CHANNEL_MAP.putIfAbsent(ch, nettyChannel);
             }
             if (ret == null) {
@@ -97,7 +102,19 @@ final class NettyChannel extends AbstractChannel {
      */
     static void removeChannelIfDisconnected(Channel ch) {
         if (ch != null && !ch.isActive()) {
-            CHANNEL_MAP.remove(ch);
+            NettyChannel nettyChannel = CHANNEL_MAP.remove(ch);
+            if (nettyChannel != null) {
+                nettyChannel.markActive(false);
+            }
+        }
+    }
+
+    static void removeChannel(Channel ch) {
+        if (ch != null) {
+            NettyChannel nettyChannel = CHANNEL_MAP.remove(ch);
+            if (nettyChannel != null) {
+                nettyChannel.markActive(false);
+            }
         }
     }
 
@@ -113,7 +130,15 @@ final class NettyChannel extends AbstractChannel {
 
     @Override
     public boolean isConnected() {
-        return !isClosed() && channel.isActive();
+        return !isClosed() && active.get();
+    }
+
+    public boolean isActive() {
+        return active.get();
+    }
+
+    public void markActive(boolean isActive) {
+        active.set(isActive);
     }
 
     /**
@@ -142,6 +167,7 @@ final class NettyChannel extends AbstractChannel {
                 throw cause;
             }
         } catch (Throwable e) {
+            removeChannelIfDisconnected(channel);
             throw new RemotingException(this, "Failed to send message " + 
message + " to " + getRemoteAddress() + ", cause: " + e.getMessage(), e);
         }
         if (!success) {
diff --git 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java
 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java
index 3c32a9c..f541600 100644
--- 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java
+++ 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClient.java
@@ -40,10 +40,10 @@ import io.netty.handler.proxy.Socks5ProxyHandler;
 import io.netty.handler.timeout.IdleStateHandler;
 import io.netty.util.concurrent.DefaultThreadFactory;
 
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-
 import java.net.InetSocketAddress;
 
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+
 /**
  * NettyClient.
  */
@@ -197,7 +197,7 @@ public class NettyClient extends AbstractClient {
     @Override
     protected org.apache.dubbo.remoting.Channel getChannel() {
         Channel c = channel;
-        if (c == null || !c.isActive()) {
+        if (c == null) {
             return null;
         }
         return NettyChannel.getOrAddChannel(c, getUrl(), this);
diff --git 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java
 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java
index 8ff2d98..59db445 100644
--- 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java
+++ 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java
@@ -55,11 +55,7 @@ public class NettyClientHandler extends ChannelDuplexHandler 
{
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), 
url, handler);
-        try {
-            handler.connected(channel);
-        } finally {
-            NettyChannel.removeChannelIfDisconnected(ctx.channel());
-        }
+        handler.connected(channel);
     }
 
     @Override
@@ -68,18 +64,14 @@ public class NettyClientHandler extends 
ChannelDuplexHandler {
         try {
             handler.disconnected(channel);
         } finally {
-            NettyChannel.removeChannelIfDisconnected(ctx.channel());
+            NettyChannel.removeChannel(ctx.channel());
         }
     }
 
     @Override
     public void channelRead(ChannelHandlerContext ctx, Object msg) throws 
Exception {
         NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), 
url, handler);
-        try {
-            handler.received(channel, msg);
-        } finally {
-            NettyChannel.removeChannelIfDisconnected(ctx.channel());
-        }
+        handler.received(channel, msg);
     }
 
     @Override
@@ -92,21 +84,17 @@ public class NettyClientHandler extends 
ChannelDuplexHandler {
         // If our out bound event has an error (in most cases the encoder 
fails),
         // we need to have the request return directly instead of blocking the 
invoke process.
         promise.addListener(future -> {
-            try {
-                if (future.isSuccess()) {
-                    // if our future is success, mark the future to sent.
-                    handler.sent(channel, msg);
-                    return;
-                }
+            if (future.isSuccess()) {
+                // if our future is success, mark the future to sent.
+                handler.sent(channel, msg);
+                return;
+            }
 
-                Throwable t = future.cause();
-                if (t != null && isRequest) {
-                    Request request = (Request) msg;
-                    Response response = buildErrorResponse(request, t);
-                    handler.received(channel, response);
-                }
-            } finally {
-                NettyChannel.removeChannelIfDisconnected(ctx.channel());
+            Throwable t = future.cause();
+            if (t != null && isRequest) {
+                Request request = (Request) msg;
+                Response response = buildErrorResponse(request, t);
+                handler.received(channel, response);
             }
         });
     }
diff --git 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java
 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java
index e0e4513..d1cb65b 100644
--- 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java
+++ 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java
@@ -66,11 +66,7 @@ final public class NettyCodecAdapter {
             org.apache.dubbo.remoting.buffer.ChannelBuffer buffer = new 
NettyBackedChannelBuffer(out);
             Channel ch = ctx.channel();
             NettyChannel channel = NettyChannel.getOrAddChannel(ch, url, 
handler);
-            try {
-                codec.encode(channel, buffer, msg);
-            } finally {
-                NettyChannel.removeChannelIfDisconnected(ch);
-            }
+            codec.encode(channel, buffer, msg);
         }
     }
 
@@ -83,27 +79,23 @@ final public class NettyCodecAdapter {
 
             NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), 
url, handler);
 
-            try {
-                // decode object.
-                do {
-                    int saveReaderIndex = message.readerIndex();
-                    Object msg = codec.decode(channel, message);
-                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {
-                        message.readerIndex(saveReaderIndex);
-                        break;
-                    } else {
-                        //is it possible to go here ?
-                        if (saveReaderIndex == message.readerIndex()) {
-                            throw new IOException("Decode without read data.");
-                        }
-                        if (msg != null) {
-                            out.add(msg);
-                        }
+            // decode object.
+            do {
+                int saveReaderIndex = message.readerIndex();
+                Object msg = codec.decode(channel, message);
+                if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {
+                    message.readerIndex(saveReaderIndex);
+                    break;
+                } else {
+                    //is it possible to go here ?
+                    if (saveReaderIndex == message.readerIndex()) {
+                        throw new IOException("Decode without read data.");
                     }
-                } while (message.readable());
-            } finally {
-                NettyChannel.removeChannelIfDisconnected(ctx.channel());
-            }
+                    if (msg != null) {
+                        out.add(msg);
+                    }
+                }
+            } while (message.readable());
         }
     }
 }
diff --git 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java
 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java
index e62ab72..33ad9c9 100644
--- 
a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java
+++ 
b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java
@@ -66,14 +66,10 @@ public class NettyServerHandler extends 
ChannelDuplexHandler {
     @Override
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), 
url, handler);
-        try {
-            if (channel != null) {
-                channels.put(NetUtils.toAddressString((InetSocketAddress) 
ctx.channel().remoteAddress()), channel);
-            }
-            handler.connected(channel);
-        } finally {
-            NettyChannel.removeChannelIfDisconnected(ctx.channel());
+        if (channel != null) {
+            channels.put(NetUtils.toAddressString((InetSocketAddress) 
ctx.channel().remoteAddress()), channel);
         }
+        handler.connected(channel);
     }
 
     @Override
@@ -83,18 +79,14 @@ public class NettyServerHandler extends 
ChannelDuplexHandler {
             channels.remove(NetUtils.toAddressString((InetSocketAddress) 
ctx.channel().remoteAddress()));
             handler.disconnected(channel);
         } finally {
-            NettyChannel.removeChannelIfDisconnected(ctx.channel());
+            NettyChannel.removeChannel(ctx.channel());
         }
     }
 
     @Override
     public void channelRead(ChannelHandlerContext ctx, Object msg) throws 
Exception {
         NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), 
url, handler);
-        try {
-            handler.received(channel, msg);
-        } finally {
-            NettyChannel.removeChannelIfDisconnected(ctx.channel());
-        }
+        handler.received(channel, msg);
     }
 
 
@@ -102,11 +94,7 @@ public class NettyServerHandler extends 
ChannelDuplexHandler {
     public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise 
promise) throws Exception {
         super.write(ctx, msg, promise);
         NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), 
url, handler);
-        try {
-            handler.sent(channel, msg);
-        } finally {
-            NettyChannel.removeChannelIfDisconnected(ctx.channel());
-        }
+        handler.sent(channel, msg);
     }
 
     @Override
diff --git 
a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java
 
b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java
index 2a190ad..1a2347c 100644
--- 
a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java
+++ 
b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java
@@ -74,7 +74,6 @@ public class DecodeableRpcResult extends AppResponse 
implements Codec, Decodeabl
 
     @Override
     public Object decode(Channel channel, InputStream input) throws 
IOException {
-        log.debug("Decoding in thread -- " + Thread.currentThread().getName());
         ObjectInput in = CodecSupport.getSerialization(channel.getUrl(), 
serializationType)
                 .deserialize(channel.getUrl(), input);
 
diff --git 
a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
 
b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
index f3d77af..415e684 100644
--- 
a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
+++ 
b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/RestProtocolTest.java
@@ -55,7 +55,7 @@ public class RestProtocolTest {
     public void testRestProtocol() {
         URL url = 
URL.valueOf("rest://127.0.0.1:5342/rest/say?version=1.0.0&interface=org.apache.dubbo.rpc.protocol.rest.DemoService");
         DemoServiceImpl server = new DemoServiceImpl();
-        ProviderModel providerModel = new ProviderModel(url.getPathKey(), 
server, DemoService.class);
+        ProviderModel providerModel = new ProviderModel(url.getPathKey(), 
server, ApplicationModel.registerServiceModel(DemoService.class));
         ApplicationModel.initProviderModel(url.getPathKey(), providerModel);
 
         Exporter<DemoService> exporter = 
protocol.export(proxy.getInvoker(server, DemoService.class, url));
@@ -75,7 +75,7 @@ public class RestProtocolTest {
         DemoServiceImpl server = new DemoServiceImpl();
         Assertions.assertFalse(server.isCalled());
         URL url = 
URL.valueOf("rest://127.0.0.1:5341/a/b/c?version=1.0.0&interface=org.apache.dubbo.rpc.protocol.rest.DemoService");
-        ProviderModel providerModel = new ProviderModel(url.getPathKey(), 
server, DemoService.class);
+        ProviderModel providerModel = new ProviderModel(url.getPathKey(), 
server, ApplicationModel.registerServiceModel(DemoService.class));
         ApplicationModel.initProviderModel(url.getPathKey(), providerModel);
 
         Exporter<DemoService> exporter = 
protocol.export(proxy.getInvoker(server, DemoService.class, url));
@@ -93,7 +93,7 @@ public class RestProtocolTest {
     @Test
     public void testExport() {
         DemoService server = new DemoServiceImpl();
-        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
         ApplicationModel.initProviderModel(exportUrl.getServiceKey(), 
providerModel);
 
         RpcContext.getContext().setAttachment("timeout", "200");
@@ -110,7 +110,7 @@ public class RestProtocolTest {
     @Test
     public void testNettyServer() {
         DemoService server = new DemoServiceImpl();
-        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
         ApplicationModel.initProviderModel(exportUrl.getServiceKey(), 
providerModel);
 
         URL nettyUrl = exportUrl.addParameter(SERVER_KEY, "netty");
@@ -128,7 +128,7 @@ public class RestProtocolTest {
     public void testServletWithoutWebConfig() {
         Assertions.assertThrows(RpcException.class, () -> {
             DemoService server = new DemoServiceImpl();
-            ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+            ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
             ApplicationModel.initProviderModel(exportUrl.getPathKey(), 
providerModel);
 
             URL servletUrl = exportUrl.addParameter(SERVER_KEY, "servlet");
@@ -141,7 +141,7 @@ public class RestProtocolTest {
     public void testErrorHandler() {
         Assertions.assertThrows(RpcException.class, () -> {
             DemoService server = new DemoServiceImpl();
-            ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+            ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
             ApplicationModel.initProviderModel(exportUrl.getServiceKey(), 
providerModel);
 
             URL nettyUrl = exportUrl.addParameter(SERVER_KEY, "netty");
@@ -156,7 +156,7 @@ public class RestProtocolTest {
     @Test
     public void testInvoke() {
         DemoService server = new DemoServiceImpl();
-        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
         ApplicationModel.initProviderModel(exportUrl.getServiceKey(), 
providerModel);
 
 
@@ -171,7 +171,7 @@ public class RestProtocolTest {
     @Test
     public void testFilter() {
         DemoService server = new DemoServiceImpl();
-        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
         ApplicationModel.initProviderModel(exportUrl.getServiceKey(), 
providerModel);
 
         URL nettyUrl = exportUrl.addParameter(SERVER_KEY, "netty")
@@ -190,7 +190,7 @@ public class RestProtocolTest {
     @Test
     public void testRpcContextFilter() {
         DemoService server = new DemoServiceImpl();
-        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+        ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
         ApplicationModel.initProviderModel(exportUrl.getServiceKey(), 
providerModel);
 
         // use RpcContextFilter
@@ -214,7 +214,7 @@ public class RestProtocolTest {
     public void testRegFail() {
         Assertions.assertThrows(RuntimeException.class, () -> {
             DemoService server = new DemoServiceImpl();
-            ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, DemoService.class);
+            ProviderModel providerModel = new 
ProviderModel(exportUrl.getServiceKey(), server, 
ApplicationModel.registerServiceModel(DemoService.class));
             ApplicationModel.initProviderModel(exportUrl.getServiceKey(), 
providerModel);
 
             URL nettyUrl = exportUrl.addParameter(EXTENSION_KEY, 
"com.not.existing.Filter");

Reply via email to