more test case
git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@163 1a56cb94-b969-4eaa-88fa-be21384802f2
This commit is contained in:
parent
a0de8e050e
commit
a0a9df849e
|
|
@ -478,7 +478,8 @@ public class RegistryDirectoryTest {
|
|||
|
||||
List<URL> serviceUrls = new ArrayList<URL> ();
|
||||
// without ROUTER_KEY, the first router should not be created.
|
||||
serviceUrls.add(routerurl.addParameter(RpcConstants.TYPE_KEY, "javascript")
|
||||
serviceUrls.add(routerurl.addParameter(RpcConstants.TYPE_KEY, "javascript")
|
||||
.addParameter(RpcConstants.ROUTER_KEY, "notsupported")
|
||||
.addParameter(RpcConstants.RULE_KEY, "function test1(){}"));
|
||||
serviceUrls.add(routerurl2.addParameter(RpcConstants.TYPE_KEY, "javascript")
|
||||
.addParameter(RpcConstants.ROUTER_KEY, ScriptRouterFactory.NAME)
|
||||
|
|
@ -499,6 +500,29 @@ public class RegistryDirectoryTest {
|
|||
registryDirectory.notify(serviceUrls);
|
||||
routers = registryDirectory.getRouters();
|
||||
Assert.assertEquals(0, routers.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNotifyRouterUrls_Clean(){
|
||||
if (isScriptUnsupported) return;
|
||||
RegistryDirectory registryDirectory = getRegistryDirectory();
|
||||
URL routerurl= URL.valueOf(RpcConstants.ROUTE_PROTOCOL + "://127.0.0.1:9096/")
|
||||
.addParameter(RpcConstants.ROUTER_KEY, "javascript")
|
||||
.addParameter(RpcConstants.RULE_KEY, "function test1(){}")
|
||||
.addParameter(RpcConstants.ROUTER_KEY, "script"); //FIX BAD
|
||||
|
||||
List<URL> serviceUrls = new ArrayList<URL> ();
|
||||
// without ROUTER_KEY, the first router should not be created.
|
||||
serviceUrls.add(routerurl);
|
||||
registryDirectory.notify(serviceUrls);
|
||||
List routers = registryDirectory.getRouters();
|
||||
Assert.assertEquals(1, routers.size());
|
||||
|
||||
serviceUrls.clear();
|
||||
serviceUrls.add(routerurl.addParameter(RpcConstants.ROUTER_KEY, RpcConstants.ROUTER_TYPE_CLEAR));
|
||||
registryDirectory.notify(serviceUrls);
|
||||
routers = registryDirectory.getRouters();
|
||||
Assert.assertEquals(0, routers.size());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import com.alibaba.dubbo.rpc.RpcConstants;
|
|||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Router;
|
||||
import com.alibaba.dubbo.rpc.cluster.RouterFactory;
|
||||
import com.alibaba.dubbo.rpc.cluster.router.ScriptRouterFactory;
|
||||
import com.alibaba.dubbo.rpc.cluster.support.AbstractDirectory;
|
||||
import com.alibaba.dubbo.rpc.cluster.support.ClusterUtils;
|
||||
|
||||
|
|
@ -108,7 +109,7 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
|
|||
registry.unsubscribe(directoryUrl, this);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.warn("unexpeced error when unsubscribe service " + serviceKey + "from registry" + registry.getUrl().getAddress(), t);
|
||||
logger.warn("unexpeced error when unsubscribe service " + serviceKey + "from registry" + registry.getUrl(), t);
|
||||
}
|
||||
try {
|
||||
destroyAllInvokers();
|
||||
|
|
@ -193,13 +194,18 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
|
|||
|
||||
if (urls != null && urls.size() > 0) {
|
||||
for (URL url : urls) {
|
||||
String router_type = url.getParameter(RpcConstants.ROUTER_KEY);
|
||||
String router_type = url.getParameter(RpcConstants.ROUTER_KEY, ScriptRouterFactory.NAME);
|
||||
if (router_type == null || router_type.length() == 0){
|
||||
logger.warn("Router url:\"" + url.toString() + "\" does not contain " + RpcConstants.ROUTER_KEY + ", router creation ignored!");
|
||||
continue;
|
||||
}
|
||||
routers.add(ExtensionLoader.getExtensionLoader(RouterFactory.class).getExtension(router_type).getRouter(url));
|
||||
// routers.add(routerFactory.getRouter(url.setProtocol(router_type)));
|
||||
try{
|
||||
Router router = ExtensionLoader.getExtensionLoader(RouterFactory.class).getExtension(router_type).getRouter(url);
|
||||
if (!routers.contains(router))
|
||||
routers.add(router);
|
||||
}catch (Throwable t) {
|
||||
logger.error("convert router url to router error, url: "+ url, t);
|
||||
}
|
||||
}
|
||||
}
|
||||
return routers;
|
||||
|
|
|
|||
Loading…
Reference in New Issue