use of com.alipay.sofa.ark.container.registry.ContainerServiceProvider in project sofa-ark by alipay.
the class InjectionServiceTest method test.
@Test
public void test() {
RegistryService registryService = ArkServiceContainerHolder.getContainer().getService(RegistryService.class);
PluginMockService pluginMockService = new PluginMockService();
registryService.publishService(PluginMockService.class, pluginMockService, new ContainerServiceProvider());
Assert.assertNotNull(pluginMockService.getBizFactoryService());
Assert.assertNotNull(pluginMockService.getBizManagerService());
Assert.assertNull(pluginMockService.getClassLoaderService());
}
use of com.alipay.sofa.ark.container.registry.ContainerServiceProvider in project sofa-ark by alipay.
the class ServiceRegistrationTest method testPublishDuplicateService.
@Test
@SuppressWarnings("unchecked")
public void testPublishDuplicateService() {
registryService.publishService(ITest.class, new TestObjectA(), new ContainerServiceProvider());
registryService.publishService(ITest.class, new TestObjectB(), new ContainerServiceProvider());
// 只有第一个服务发布成功
Assert.assertEquals(1, registryService.referenceServices(ITest.class).size());
Assert.assertEquals(TestObjectA.OUTPUT, registryService.referenceService(ITest.class).getService().test());
registryService.unPublishServices(new DefaultServiceFilter().setServiceInterface(ITest.class));
Assert.assertEquals(0, registryService.referenceServices(ITest.class).size());
registryService.publishService(ITest.class, new TestObjectA(), "testA", new ContainerServiceProvider());
registryService.publishService(ITest.class, new TestObjectB(), "testB", new ContainerServiceProvider());
Assert.assertEquals(2, registryService.referenceServices(new DefaultServiceFilter().setServiceInterface(ITest.class)).size());
Assert.assertEquals(TestObjectA.OUTPUT, registryService.referenceService(ITest.class, "testA").getService().test());
Assert.assertEquals(TestObjectB.OUTPUT, registryService.referenceService(ITest.class, "testB").getService().test());
int c = registryService.unPublishServices(new DefaultServiceFilter().setUniqueId("testA"));
Assert.assertTrue(c == 1);
c = registryService.unPublishServices(new DefaultServiceFilter().setProviderType(ServiceProviderType.ARK_CONTAINER).setServiceInterface(ITest.class));
Assert.assertTrue(c == 1);
Assert.assertEquals(0, registryService.referenceServices(ITest.class).size());
}
use of com.alipay.sofa.ark.container.registry.ContainerServiceProvider in project sofa-ark by alipay.
the class ServiceRegistrationTest method testContainerService.
@Test
public void testContainerService() {
registryService.publishService(ITest.class, new TestObjectA(), new ContainerServiceProvider(20000));
registryService.publishService(ITest.class, new TestObjectB(), new ContainerServiceProvider(100));
registryService.publishService(ITest.class, new TestObjectC(), new ContainerServiceProvider(200));
Assert.assertEquals(TestObjectB.OUTPUT, registryService.referenceService(ITest.class).getService().test());
Assert.assertEquals(3, registryService.referenceServices(ITest.class).size());
}
use of com.alipay.sofa.ark.container.registry.ContainerServiceProvider in project sofa-ark by alipay.
the class ServiceRegistrationTest method testReferenceService.
@Test
public void testReferenceService() {
registryService.publishService(ITest.class, new TestObjectA(), new ContainerServiceProvider());
ServiceReference<ITest> iTestServiceReference = registryService.referenceService(ITest.class);
Assert.assertNotNull(iTestServiceReference);
Assert.assertEquals(TestObjectA.OUTPUT, iTestServiceReference.getService().test());
}
use of com.alipay.sofa.ark.container.registry.ContainerServiceProvider in project sofa-ark by sofastack.
the class RegisterServiceStage method registryDefaultService.
/**
* Registry some default service
*/
private void registryDefaultService() {
/**
* some basic container service is not allowed to be override, they are only published
* to be referenced by plugin and biz, even depended by other container service.
*/
registryService.publishService(BizManagerService.class, ArkServiceContainerHolder.getContainer().getService(BizManagerService.class), new ContainerServiceProvider(PriorityOrdered.HIGHEST_PRECEDENCE));
registryService.publishService(BizFactoryService.class, ArkServiceContainerHolder.getContainer().getService(BizFactoryService.class), new ContainerServiceProvider(PriorityOrdered.HIGHEST_PRECEDENCE));
registryService.publishService(PluginManagerService.class, ArkServiceContainerHolder.getContainer().getService(PluginManagerService.class), new ContainerServiceProvider(PriorityOrdered.HIGHEST_PRECEDENCE));
registryService.publishService(PluginFactoryService.class, ArkServiceContainerHolder.getContainer().getService(PluginFactoryService.class), new ContainerServiceProvider(PriorityOrdered.HIGHEST_PRECEDENCE));
registryService.publishService(EventAdminService.class, ArkServiceContainerHolder.getContainer().getService(EventAdminService.class), new ContainerServiceProvider(PriorityOrdered.HIGHEST_PRECEDENCE));
registryService.publishService(RegistryService.class, ArkServiceContainerHolder.getContainer().getService(RegistryService.class), new ContainerServiceProvider(PriorityOrdered.HIGHEST_PRECEDENCE));
/**
* some container service which may depends on other basic container service.
*/
registryService.publishService(BizDeployer.class, new DefaultBizDeployer(), new ContainerServiceProvider());
registryService.publishService(CommandProvider.class, new PluginCommandProvider(), PLUGIN_COMMAND_UNIQUE_ID, new ContainerServiceProvider());
registryService.publishService(CommandProvider.class, new BizCommandProvider(), BIZ_COMMAND_UNIQUE_ID, new ContainerServiceProvider());
}
Aggregations