Search in sources :

Example 1 with PluginNameServiceFilter

use of com.alipay.sofa.ark.container.registry.PluginNameServiceFilter in project sofa-ark by alipay.

the class RegistryServiceTest method testFilter.

@Test
public void testFilter() {
    PluginModel pluginA = new PluginModel();
    pluginA.setPluginName("plugin A").setPriority(10);
    PluginModel pluginB = new PluginModel();
    pluginB.setPluginName("plugin B").setPriority(1);
    pluginManagerService.registerPlugin(pluginA);
    pluginManagerService.registerPlugin(pluginB);
    registryService.publishService(ITest.class, new TestObjectA(), new PluginServiceProvider(pluginA));
    registryService.publishService(ITest.class, new TestObjectB(), new PluginServiceProvider(pluginB));
    registryService.publishService(ITest.class, new TestObjectC());
    Assert.assertEquals(pluginB.getPluginName(), registryService.referenceService(ITest.class).getServiceMetadata().getServiceProvider().getServiceProviderName());
    Assert.assertEquals(pluginA.getPluginName(), registryService.referenceService(ITest.class, new PluginNameServiceFilter(pluginA.getPluginName())).getServiceMetadata().getServiceProvider().getServiceProviderName());
    Assert.assertNull(registryService.referenceService(ITest.class, new PluginNameServiceFilter("not exist")));
    Assert.assertEquals("ArkContainer", registryService.referenceService(ITest.class, new ServiceFilter() {

        @Override
        public boolean match(ServiceProvider serviceProvider) {
            return ServiceProviderType.ARK_CONTAINER.equals(serviceProvider.getServiceProviderType());
        }
    }).getServiceMetadata().getServiceProvider().getServiceProviderName());
}
Also used : PluginModel(com.alipay.sofa.ark.container.model.PluginModel) PluginNameServiceFilter(com.alipay.sofa.ark.container.registry.PluginNameServiceFilter) ServiceFilter(com.alipay.sofa.ark.spi.registry.ServiceFilter) TestObjectC(com.alipay.sofa.ark.container.testdata.impl.TestObjectC) TestObjectA(com.alipay.sofa.ark.container.testdata.impl.TestObjectA) TestObjectB(com.alipay.sofa.ark.container.testdata.impl.TestObjectB) ITest(com.alipay.sofa.ark.container.testdata.ITest) ServiceProvider(com.alipay.sofa.ark.spi.registry.ServiceProvider) PluginServiceProvider(com.alipay.sofa.ark.container.registry.PluginServiceProvider) ArkContainerServiceProvider(com.alipay.sofa.ark.container.registry.ArkContainerServiceProvider) PluginServiceProvider(com.alipay.sofa.ark.container.registry.PluginServiceProvider) PluginNameServiceFilter(com.alipay.sofa.ark.container.registry.PluginNameServiceFilter) BaseTest(com.alipay.sofa.ark.container.BaseTest) ITest(com.alipay.sofa.ark.container.testdata.ITest) Test(org.junit.Test)

Aggregations

BaseTest (com.alipay.sofa.ark.container.BaseTest)1 PluginModel (com.alipay.sofa.ark.container.model.PluginModel)1 ArkContainerServiceProvider (com.alipay.sofa.ark.container.registry.ArkContainerServiceProvider)1 PluginNameServiceFilter (com.alipay.sofa.ark.container.registry.PluginNameServiceFilter)1 PluginServiceProvider (com.alipay.sofa.ark.container.registry.PluginServiceProvider)1 ITest (com.alipay.sofa.ark.container.testdata.ITest)1 TestObjectA (com.alipay.sofa.ark.container.testdata.impl.TestObjectA)1 TestObjectB (com.alipay.sofa.ark.container.testdata.impl.TestObjectB)1 TestObjectC (com.alipay.sofa.ark.container.testdata.impl.TestObjectC)1 ServiceFilter (com.alipay.sofa.ark.spi.registry.ServiceFilter)1 ServiceProvider (com.alipay.sofa.ark.spi.registry.ServiceProvider)1 Test (org.junit.Test)1