Search in sources :

Example 11 with ContainerServiceProvider

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());
}
Also used : ContainerServiceProvider(com.alipay.sofa.ark.container.registry.ContainerServiceProvider) RegistryService(com.alipay.sofa.ark.spi.service.registry.RegistryService) BaseTest(com.alipay.sofa.ark.container.BaseTest) Test(org.junit.Test)

Example 12 with ContainerServiceProvider

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());
}
Also used : DefaultServiceFilter(com.alipay.sofa.ark.container.registry.DefaultServiceFilter) 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) ContainerServiceProvider(com.alipay.sofa.ark.container.registry.ContainerServiceProvider) BaseTest(com.alipay.sofa.ark.container.BaseTest) ITest(com.alipay.sofa.ark.container.testdata.ITest) Test(org.junit.Test)

Example 13 with ContainerServiceProvider

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());
}
Also used : 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) ContainerServiceProvider(com.alipay.sofa.ark.container.registry.ContainerServiceProvider) BaseTest(com.alipay.sofa.ark.container.BaseTest) ITest(com.alipay.sofa.ark.container.testdata.ITest) Test(org.junit.Test)

Example 14 with ContainerServiceProvider

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());
}
Also used : TestObjectA(com.alipay.sofa.ark.container.testdata.impl.TestObjectA) ITest(com.alipay.sofa.ark.container.testdata.ITest) ContainerServiceProvider(com.alipay.sofa.ark.container.registry.ContainerServiceProvider) BaseTest(com.alipay.sofa.ark.container.BaseTest) ITest(com.alipay.sofa.ark.container.testdata.ITest) Test(org.junit.Test)

Example 15 with ContainerServiceProvider

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());
}
Also used : PluginManagerService(com.alipay.sofa.ark.spi.service.plugin.PluginManagerService) PluginFactoryService(com.alipay.sofa.ark.spi.service.plugin.PluginFactoryService) DefaultBizDeployer(com.alipay.sofa.ark.container.service.biz.DefaultBizDeployer) BizFactoryService(com.alipay.sofa.ark.spi.service.biz.BizFactoryService) EventAdminService(com.alipay.sofa.ark.spi.service.event.EventAdminService) ContainerServiceProvider(com.alipay.sofa.ark.container.registry.ContainerServiceProvider) PluginCommandProvider(com.alipay.sofa.ark.container.service.plugin.PluginCommandProvider) BizCommandProvider(com.alipay.sofa.ark.container.service.biz.BizCommandProvider) RegistryService(com.alipay.sofa.ark.spi.service.registry.RegistryService) BizManagerService(com.alipay.sofa.ark.spi.service.biz.BizManagerService)

Aggregations

ContainerServiceProvider (com.alipay.sofa.ark.container.registry.ContainerServiceProvider)18 BaseTest (com.alipay.sofa.ark.container.BaseTest)16 Test (org.junit.Test)16 ITest (com.alipay.sofa.ark.container.testdata.ITest)12 TestObjectA (com.alipay.sofa.ark.container.testdata.impl.TestObjectA)12 DefaultServiceFilter (com.alipay.sofa.ark.container.registry.DefaultServiceFilter)8 TestObjectB (com.alipay.sofa.ark.container.testdata.impl.TestObjectB)6 RegistryService (com.alipay.sofa.ark.spi.service.registry.RegistryService)6 PluginModel (com.alipay.sofa.ark.container.model.PluginModel)4 PluginServiceProvider (com.alipay.sofa.ark.container.registry.PluginServiceProvider)4 TestObjectC (com.alipay.sofa.ark.container.testdata.impl.TestObjectC)4 ServiceReference (com.alipay.sofa.ark.spi.registry.ServiceReference)4 PluginContextImpl (com.alipay.sofa.ark.container.model.PluginContextImpl)2 BizCommandProvider (com.alipay.sofa.ark.container.service.biz.BizCommandProvider)2 DefaultBizDeployer (com.alipay.sofa.ark.container.service.biz.DefaultBizDeployer)2 PluginClassLoader (com.alipay.sofa.ark.container.service.classloader.PluginClassLoader)2 PluginCommandProvider (com.alipay.sofa.ark.container.service.plugin.PluginCommandProvider)2 ArkCommandHandler (com.alipay.sofa.ark.container.session.handler.ArkCommandHandler)2 PluginActivatorA (com.alipay.sofa.ark.container.testdata.activator.PluginActivatorA)2 PluginActivatorB (com.alipay.sofa.ark.container.testdata.activator.PluginActivatorB)2