Search in sources :

Example 11 with ServiceConfig

use of org.apache.dubbo.config.ServiceConfig in project dubbo by alibaba.

the class ConfigTest method testProviderNestedService.

@Test
@SuppressWarnings("unchecked")
public void testProviderNestedService() {
    ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/provider-nested-service.xml");
    ctx.start();
    try {
        ServiceConfig<DemoService> serviceConfig = (ServiceConfig<DemoService>) ctx.getBean("serviceConfig");
        assertNotNull(serviceConfig.getProvider());
        assertEquals(2000, serviceConfig.getProvider().getTimeout().intValue());
        ServiceConfig<DemoService> serviceConfig2 = (ServiceConfig<DemoService>) ctx.getBean("serviceConfig2");
        assertNotNull(serviceConfig2.getProvider());
        assertEquals(1000, serviceConfig2.getProvider().getTimeout().intValue());
    } finally {
        ctx.stop();
        ctx.close();
    }
}
Also used : ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) ServiceConfig(org.apache.dubbo.config.ServiceConfig) DemoService(org.apache.dubbo.config.spring.api.DemoService) Test(org.junit.jupiter.api.Test)

Example 12 with ServiceConfig

use of org.apache.dubbo.config.ServiceConfig in project dubbo by alibaba.

the class Application method startWithExport.

private static void startWithExport() throws InterruptedException {
    ServiceConfig<DemoServiceImpl> service = new ServiceConfig<>();
    service.setInterface(DemoService.class);
    service.setRef(new DemoServiceImpl());
    service.setApplication(new ApplicationConfig("dubbo-demo-api-provider"));
    service.setRegistry(new RegistryConfig("zookeeper://127.0.0.1:2181"));
    service.export();
    System.out.println("dubbo service started");
    new CountDownLatch(1).await();
}
Also used : RegistryConfig(org.apache.dubbo.config.RegistryConfig) ServiceConfig(org.apache.dubbo.config.ServiceConfig) ApplicationConfig(org.apache.dubbo.config.ApplicationConfig) CountDownLatch(java.util.concurrent.CountDownLatch)

Example 13 with ServiceConfig

use of org.apache.dubbo.config.ServiceConfig in project dubbo by alibaba.

the class DubboBootstrap method exportServices.

private void exportServices() {
    configManager.getServices().forEach(sc -> {
        // TODO, compatible with ServiceConfig.export()
        ServiceConfig serviceConfig = (ServiceConfig) sc;
        serviceConfig.setBootstrap(this);
        if (exportAsync) {
            ExecutorService executor = executorRepository.getServiceExporterExecutor();
            Future<?> future = executor.submit(() -> {
                try {
                    exportService(serviceConfig);
                } catch (Throwable t) {
                    logger.error("export async catch error : " + t.getMessage(), t);
                }
            });
            asyncExportingFutures.add(future);
        } else {
            exportService(serviceConfig);
        }
    });
}
Also used : ServiceConfig(org.apache.dubbo.config.ServiceConfig) ExecutorService(java.util.concurrent.ExecutorService)

Example 14 with ServiceConfig

use of org.apache.dubbo.config.ServiceConfig in project dubbo by alibaba.

the class GenericServiceTest method testGenericServiceException.

@Test
public void testGenericServiceException() {
    ServiceConfig<GenericService> service = new ServiceConfig<GenericService>();
    service.setInterface(DemoService.class.getName());
    service.setRef(new GenericService() {

        public Object $invoke(String method, String[] parameterTypes, Object[] args) throws GenericException {
            if ("sayName".equals(method)) {
                return "Generic " + args[0];
            }
            if ("throwDemoException".equals(method)) {
                throw new GenericException(DemoException.class.getName(), "Generic");
            }
            if ("getUsers".equals(method)) {
                return args[0];
            }
            return null;
        }
    });
    ReferenceConfig<DemoService> reference = new ReferenceConfig<DemoService>();
    reference.setInterface(DemoService.class);
    reference.setUrl("dubbo://127.0.0.1:29581?generic=true&timeout=3000");
    DubboBootstrap bootstrap = DubboBootstrap.getInstance().application(new ApplicationConfig("generic-test")).registry(new RegistryConfig("N/A")).protocol(new ProtocolConfig("dubbo", 29581)).service(service).reference(reference);
    bootstrap.start();
    try {
        DemoService demoService = ReferenceConfigCache.getCache().get(reference);
        // say name
        Assertions.assertEquals("Generic Haha", demoService.sayName("Haha"));
        // get users
        List<User> users = new ArrayList<User>();
        users.add(new User("Aaa"));
        users = demoService.getUsers(users);
        Assertions.assertEquals("Aaa", users.get(0).getName());
        // throw demo exception
        try {
            demoService.throwDemoException();
            Assertions.fail();
        } catch (DemoException e) {
            Assertions.assertEquals("Generic", e.getMessage());
        }
    } finally {
        bootstrap.stop();
    }
}
Also used : RegistryConfig(org.apache.dubbo.config.RegistryConfig) GenericService(org.apache.dubbo.rpc.service.GenericService) ArrayList(java.util.ArrayList) GenericException(org.apache.dubbo.rpc.service.GenericException) ServiceConfig(org.apache.dubbo.config.ServiceConfig) ApplicationConfig(org.apache.dubbo.config.ApplicationConfig) ReferenceConfig(org.apache.dubbo.config.ReferenceConfig) DubboBootstrap(org.apache.dubbo.config.bootstrap.DubboBootstrap) ProtocolConfig(org.apache.dubbo.config.ProtocolConfig) Test(org.junit.jupiter.api.Test)

Example 15 with ServiceConfig

use of org.apache.dubbo.config.ServiceConfig in project dubbo by alibaba.

the class GenericServiceTest method testGenericInvokeWithBeanSerialization.

@Test
public void testGenericInvokeWithBeanSerialization() throws Exception {
    ServiceConfig<DemoService> service = new ServiceConfig<DemoService>();
    service.setInterface(DemoService.class);
    DemoServiceImpl impl = new DemoServiceImpl();
    service.setRef(impl);
    ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
    reference.setInterface(DemoService.class);
    reference.setUrl("dubbo://127.0.0.1:29581?scope=remote&timeout=3000");
    reference.setGeneric(GENERIC_SERIALIZATION_BEAN);
    DubboBootstrap bootstrap = DubboBootstrap.getInstance().application(new ApplicationConfig("generic-test")).registry(new RegistryConfig("N/A")).protocol(new ProtocolConfig("dubbo", 29581)).service(service).reference(reference);
    bootstrap.start();
    try {
        GenericService genericService = bootstrap.getCache().get(reference);
        User user = new User();
        user.setName("zhangsan");
        List<User> users = new ArrayList<User>();
        users.add(user);
        Object result = genericService.$invoke("getUsers", new String[] { ReflectUtils.getName(List.class) }, new Object[] { JavaBeanSerializeUtil.serialize(users, JavaBeanAccessor.METHOD) });
        Assertions.assertTrue(result instanceof JavaBeanDescriptor);
        JavaBeanDescriptor descriptor = (JavaBeanDescriptor) result;
        Assertions.assertTrue(descriptor.isCollectionType());
        Assertions.assertEquals(1, descriptor.propertySize());
        descriptor = (JavaBeanDescriptor) descriptor.getProperty(0);
        Assertions.assertTrue(descriptor.isBeanType());
        Assertions.assertEquals(user.getName(), ((JavaBeanDescriptor) descriptor.getProperty("name")).getPrimitiveProperty());
    } finally {
        bootstrap.stop();
    }
}
Also used : RegistryConfig(org.apache.dubbo.config.RegistryConfig) GenericService(org.apache.dubbo.rpc.service.GenericService) ArrayList(java.util.ArrayList) JavaBeanDescriptor(org.apache.dubbo.common.beanutil.JavaBeanDescriptor) ServiceConfig(org.apache.dubbo.config.ServiceConfig) ApplicationConfig(org.apache.dubbo.config.ApplicationConfig) ReferenceConfig(org.apache.dubbo.config.ReferenceConfig) DubboBootstrap(org.apache.dubbo.config.bootstrap.DubboBootstrap) ArrayList(java.util.ArrayList) List(java.util.List) ProtocolConfig(org.apache.dubbo.config.ProtocolConfig) Test(org.junit.jupiter.api.Test)

Aggregations

ServiceConfig (org.apache.dubbo.config.ServiceConfig)26 RegistryConfig (org.apache.dubbo.config.RegistryConfig)19 Test (org.junit.jupiter.api.Test)19 ApplicationConfig (org.apache.dubbo.config.ApplicationConfig)18 ProtocolConfig (org.apache.dubbo.config.ProtocolConfig)14 DubboBootstrap (org.apache.dubbo.config.bootstrap.DubboBootstrap)14 DemoService (org.apache.dubbo.config.spring.api.DemoService)11 ReferenceConfig (org.apache.dubbo.config.ReferenceConfig)9 URL (org.apache.dubbo.common.URL)7 GenericService (org.apache.dubbo.rpc.service.GenericService)7 DemoServiceImpl (org.apache.dubbo.config.spring.impl.DemoServiceImpl)6 ArrayList (java.util.ArrayList)5 ClassPathXmlApplicationContext (org.springframework.context.support.ClassPathXmlApplicationContext)4 List (java.util.List)3 JavaBeanDescriptor (org.apache.dubbo.common.beanutil.JavaBeanDescriptor)2 MethodConfig (org.apache.dubbo.config.MethodConfig)2 ProviderConfig (org.apache.dubbo.config.ProviderConfig)2 UserService (org.apache.dubbo.config.bootstrap.rest.UserService)2 UserServiceImpl (org.apache.dubbo.config.bootstrap.rest.UserServiceImpl)2 GenericException (org.apache.dubbo.rpc.service.GenericException)2