use of com.weibo.api.motan.transport.support.HeartbeatClientEndpointManager in project motan by weibocom.
the class NettyEndpointFactoryTest method testNotShareChannel.
private void testNotShareChannel(boolean isServer) {
NettyEndpointFactory factory = new NettyEndpointFactory();
MessageHandler handler = new ProviderMessageRouter();
URL url = new URL("motan", "localhost", 18080, "com.weibo.api.motan.procotol.example.IHello");
Endpoint endpoint = createEndpoint(url, handler, isServer, factory);
Assert.assertEquals(endpoint.getUrl().getUri(), url.getUri());
url = new URL("motan", "localhost", 18081, "com.weibo.api.motan.procotol.example.IHello");
endpoint = createEndpoint(url, handler, isServer, factory);
Assert.assertEquals(endpoint.getUrl().getUri(), url.getUri());
Assert.assertTrue(endpoint != createEndpoint(new URL("motan", "localhost", 18081, "com.weibo.api.motan.procotol.example.IHello"), handler, isServer, factory));
if (isServer) {
Assert.assertEquals(factory.getShallServerChannels().size(), 0);
}
if (isServer) {
factory.safeReleaseResource((Server) endpoint, url);
} else {
Assert.assertEquals(((HeartbeatClientEndpointManager) factory.getEndpointManager()).getClients().size(), 3);
factory.safeReleaseResource((Client) endpoint, url);
Assert.assertEquals(((HeartbeatClientEndpointManager) factory.getEndpointManager()).getClients().size(), 2);
}
}
use of com.weibo.api.motan.transport.support.HeartbeatClientEndpointManager in project motan by weibocom.
the class NettyEndpointFactoryTest method testShareChannel.
private void testShareChannel(boolean isServer) {
NettyEndpointFactory factory = new NettyEndpointFactory();
MessageHandler handler = new ProviderMessageRouter();
URL url1 = new URL("motan", "localhost", 18080, "com.weibo.api.motan.procotol.example.IHello");
url1.addParameter(URLParamType.shareChannel.getName(), "true");
Endpoint endpoint1 = createEndpoint(url1, handler, isServer, factory);
Assert.assertEquals(endpoint1.getUrl().getServerPortStr(), url1.getServerPortStr());
URL url2 = new URL("motan", "localhost", 18081, "com.weibo.api.motan.protocol.example.IHello1");
url2.addParameter(URLParamType.shareChannel.getName(), "true");
Endpoint endpoint2 = createEndpoint(url2, handler, isServer, factory);
Assert.assertEquals(endpoint2.getUrl().getServerPortStr(), url2.getServerPortStr());
URL url3 = new URL("motan", "localhost", 18081, "com.weibo.api.motan.protocol.example.IHello2");
url3.addParameter(URLParamType.shareChannel.getName(), "true");
Endpoint endpoint3 = createEndpoint(url3, handler, isServer, factory);
if (isServer) {
Assert.assertTrue(endpoint2 == endpoint3);
} else {
Assert.assertTrue(endpoint2 != endpoint3);
}
URL url4 = new URL("injvm", "localhost", 18081, "com.weibo.api.motan.protocol.example.IHello3");
url4.addParameter(URLParamType.shareChannel.getName(), "true");
Endpoint endpoint4 = null;
if (isServer) {
try {
endpoint4 = createEndpoint(url4, handler, isServer, factory);
Assert.assertTrue(false);
} catch (Exception e) {
Assert.assertTrue(true);
}
} else {
try {
endpoint4 = createEndpoint(url4, handler, isServer, factory);
Assert.assertTrue(true);
} catch (Exception e) {
Assert.assertTrue(false);
}
}
if (isServer) {
Assert.assertEquals(factory.getShallServerChannels().size(), 2);
}
if (isServer) {
factory.safeReleaseResource((Server) endpoint1, url1);
factory.safeReleaseResource((Server) endpoint2, url2);
factory.safeReleaseResource((Server) endpoint3, url3);
Assert.assertEquals(factory.getShallServerChannels().size(), 0);
} else {
Assert.assertEquals(((HeartbeatClientEndpointManager) factory.getEndpointManager()).getClients().size(), 4);
factory.safeReleaseResource((Client) endpoint1, url1);
Assert.assertEquals(((HeartbeatClientEndpointManager) factory.getEndpointManager()).getClients().size(), 3);
factory.safeReleaseResource((Client) endpoint2, url2);
Assert.assertEquals(((HeartbeatClientEndpointManager) factory.getEndpointManager()).getClients().size(), 2);
factory.safeReleaseResource((Client) endpoint3, url3);
Assert.assertEquals(((HeartbeatClientEndpointManager) factory.getEndpointManager()).getClients().size(), 1);
factory.safeReleaseResource((Client) endpoint4, url4);
Assert.assertEquals(((HeartbeatClientEndpointManager) factory.getEndpointManager()).getClients().size(), 0);
}
}
Aggregations