Search in sources :

Example 6 with InstancesChangeNotifier

use of com.alibaba.nacos.client.naming.event.InstancesChangeNotifier in project nacos by alibaba.

the class NamingClientProxyDelegateTest method testDeregisterServiceHttp.

@Test
public void testDeregisterServiceHttp() throws NacosException, NoSuchFieldException, IllegalAccessException {
    String ns = "ns1";
    ServiceInfoHolder holder = Mockito.mock(ServiceInfoHolder.class);
    Properties props = new Properties();
    props.setProperty("serverAddr", "localhost");
    InstancesChangeNotifier notifier = new InstancesChangeNotifier();
    NamingClientProxyDelegate delegate = new NamingClientProxyDelegate(ns, holder, props, notifier);
    NamingHttpClientProxy mockHttpClient = Mockito.mock(NamingHttpClientProxy.class);
    Field mockHttpClientField = NamingClientProxyDelegate.class.getDeclaredField("httpClientProxy");
    mockHttpClientField.setAccessible(true);
    mockHttpClientField.set(delegate, mockHttpClient);
    String serviceName = "service1";
    String groupName = "group1";
    Instance instance = new Instance();
    instance.setServiceName(serviceName);
    instance.setClusterName(groupName);
    instance.setIp("1.1.1.1");
    instance.setPort(1);
    // use http
    instance.setEphemeral(false);
    delegate.deregisterService(serviceName, groupName, instance);
    verify(mockHttpClient, times(1)).deregisterService(serviceName, groupName, instance);
}
Also used : NamingHttpClientProxy(com.alibaba.nacos.client.naming.remote.http.NamingHttpClientProxy) Field(java.lang.reflect.Field) ServiceInfoHolder(com.alibaba.nacos.client.naming.cache.ServiceInfoHolder) Instance(com.alibaba.nacos.api.naming.pojo.Instance) InstancesChangeNotifier(com.alibaba.nacos.client.naming.event.InstancesChangeNotifier) Properties(java.util.Properties) Test(org.junit.Test)

Example 7 with InstancesChangeNotifier

use of com.alibaba.nacos.client.naming.event.InstancesChangeNotifier in project nacos by alibaba.

the class NacosNamingService method init.

private void init(Properties properties) throws NacosException {
    ValidatorUtils.checkInitParam(properties);
    this.namespace = InitUtils.initNamespaceForNaming(properties);
    InitUtils.initSerialization();
    InitUtils.initWebRootContext(properties);
    initLogName(properties);
    this.changeNotifier = new InstancesChangeNotifier();
    NotifyCenter.registerToPublisher(InstancesChangeEvent.class, 16384);
    NotifyCenter.registerSubscriber(changeNotifier);
    this.serviceInfoHolder = new ServiceInfoHolder(namespace, properties);
    this.clientProxy = new NamingClientProxyDelegate(this.namespace, serviceInfoHolder, properties, changeNotifier);
}
Also used : ServiceInfoHolder(com.alibaba.nacos.client.naming.cache.ServiceInfoHolder) InstancesChangeNotifier(com.alibaba.nacos.client.naming.event.InstancesChangeNotifier) NamingClientProxyDelegate(com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate)

Example 8 with InstancesChangeNotifier

use of com.alibaba.nacos.client.naming.event.InstancesChangeNotifier in project nacos by alibaba.

the class NamingClientProxyDelegateTest method testGetServiceList.

@Test
public void testGetServiceList() throws NacosException, NoSuchFieldException, IllegalAccessException {
    String ns = "ns1";
    ServiceInfoHolder holder = Mockito.mock(ServiceInfoHolder.class);
    Properties props = new Properties();
    props.setProperty("serverAddr", "localhost");
    InstancesChangeNotifier notifier = new InstancesChangeNotifier();
    NamingClientProxyDelegate delegate = new NamingClientProxyDelegate(ns, holder, props, notifier);
    NamingGrpcClientProxy mockGrpcClient = Mockito.mock(NamingGrpcClientProxy.class);
    Field grpcClientProxyField = NamingClientProxyDelegate.class.getDeclaredField("grpcClientProxy");
    grpcClientProxyField.setAccessible(true);
    grpcClientProxyField.set(delegate, mockGrpcClient);
    AbstractSelector selector = new ExpressionSelector();
    int pageNo = 1;
    int pageSize = 10;
    String groupName = "group2";
    delegate.getServiceList(pageNo, pageSize, groupName, selector);
    verify(mockGrpcClient, times(1)).getServiceList(pageNo, pageSize, groupName, selector);
}
Also used : Field(java.lang.reflect.Field) ServiceInfoHolder(com.alibaba.nacos.client.naming.cache.ServiceInfoHolder) AbstractSelector(com.alibaba.nacos.api.selector.AbstractSelector) InstancesChangeNotifier(com.alibaba.nacos.client.naming.event.InstancesChangeNotifier) NamingGrpcClientProxy(com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy) ExpressionSelector(com.alibaba.nacos.api.selector.ExpressionSelector) Properties(java.util.Properties) Test(org.junit.Test)

Example 9 with InstancesChangeNotifier

use of com.alibaba.nacos.client.naming.event.InstancesChangeNotifier in project nacos by alibaba.

the class NamingClientProxyDelegateTest method testShutdown.

@Test
public void testShutdown() throws NacosException, IllegalAccessException, NoSuchFieldException {
    String ns = "ns1";
    ServiceInfoHolder holder = Mockito.mock(ServiceInfoHolder.class);
    Properties props = new Properties();
    props.setProperty("serverAddr", "localhost");
    InstancesChangeNotifier notifier = new InstancesChangeNotifier();
    NamingClientProxyDelegate delegate = new NamingClientProxyDelegate(ns, holder, props, notifier);
    NamingGrpcClientProxy mockGrpcClient = Mockito.mock(NamingGrpcClientProxy.class);
    Field grpcClientProxyField = NamingClientProxyDelegate.class.getDeclaredField("grpcClientProxy");
    grpcClientProxyField.setAccessible(true);
    grpcClientProxyField.set(delegate, mockGrpcClient);
    delegate.shutdown();
    verify(mockGrpcClient, times(1)).shutdown();
}
Also used : Field(java.lang.reflect.Field) ServiceInfoHolder(com.alibaba.nacos.client.naming.cache.ServiceInfoHolder) InstancesChangeNotifier(com.alibaba.nacos.client.naming.event.InstancesChangeNotifier) NamingGrpcClientProxy(com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy) Properties(java.util.Properties) Test(org.junit.Test)

Example 10 with InstancesChangeNotifier

use of com.alibaba.nacos.client.naming.event.InstancesChangeNotifier in project nacos by alibaba.

the class NamingClientProxyDelegateTest method testDeleteService.

@Test
public void testDeleteService() throws NacosException {
    String ns = "ns1";
    ServiceInfoHolder holder = Mockito.mock(ServiceInfoHolder.class);
    Properties props = new Properties();
    props.setProperty("serverAddr", "localhost");
    InstancesChangeNotifier notifier = new InstancesChangeNotifier();
    NamingClientProxyDelegate delegate = new NamingClientProxyDelegate(ns, holder, props, notifier);
    Assert.assertFalse(delegate.deleteService("service", "group1"));
}
Also used : ServiceInfoHolder(com.alibaba.nacos.client.naming.cache.ServiceInfoHolder) InstancesChangeNotifier(com.alibaba.nacos.client.naming.event.InstancesChangeNotifier) Properties(java.util.Properties) Test(org.junit.Test)

Aggregations

ServiceInfoHolder (com.alibaba.nacos.client.naming.cache.ServiceInfoHolder)19 InstancesChangeNotifier (com.alibaba.nacos.client.naming.event.InstancesChangeNotifier)19 Properties (java.util.Properties)18 Test (org.junit.Test)18 Field (java.lang.reflect.Field)11 NamingGrpcClientProxy (com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy)8 Instance (com.alibaba.nacos.api.naming.pojo.Instance)6 NacosException (com.alibaba.nacos.api.exception.NacosException)3 Service (com.alibaba.nacos.api.naming.pojo.Service)3 ServiceInfo (com.alibaba.nacos.api.naming.pojo.ServiceInfo)3 NamingHttpClientProxy (com.alibaba.nacos.client.naming.remote.http.NamingHttpClientProxy)3 ExpressionSelector (com.alibaba.nacos.api.selector.ExpressionSelector)2 NamingClientProxy (com.alibaba.nacos.client.naming.remote.NamingClientProxy)2 AbstractSelector (com.alibaba.nacos.api.selector.AbstractSelector)1 NoneSelector (com.alibaba.nacos.api.selector.NoneSelector)1 NamingClientProxyDelegate (com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate)1 HashSet (java.util.HashSet)1