Search in sources :

Example 16 with SofaRuntimeManager

use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.

the class HealthCheckerProcessorTest method testComponentHealthCheckerFailedFirst.

@Test
public void testComponentHealthCheckerFailedFirst() {
    SofaRuntimeManager manager = new StandardSofaRuntimeManager("testComponentHealthCheckerFailedFirst", Thread.currentThread().getContextClassLoader(), null);
    manager.getComponentManager().register(new TestComponent("component1", true));
    manager.getComponentManager().register(new TestComponent("component2", true));
    manager.getComponentManager().register(new TestComponent("component3", false));
    manager.getComponentManager().register(new TestComponent("component4", true));
    manager.getComponentManager().register(new TestComponent("component5", false));
    ComponentHealthChecker componentHealthChecker = new ComponentHealthChecker(new SofaRuntimeContext(manager, manager.getComponentManager(), null));
    int i = 0;
    for (Map.Entry<String, Object> entry : componentHealthChecker.isHealthy().getDetails().entrySet()) {
        if (i < 2) {
            Assert.assertEquals(entry.getValue().toString(), "failed");
        } else {
            Assert.assertEquals(entry.getValue().toString(), "passed");
        }
        ++i;
    }
}
Also used : ComponentHealthChecker(com.alipay.sofa.healthcheck.impl.ComponentHealthChecker) StandardSofaRuntimeManager(com.alipay.sofa.runtime.component.impl.StandardSofaRuntimeManager) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager) StandardSofaRuntimeManager(com.alipay.sofa.runtime.component.impl.StandardSofaRuntimeManager) SofaRuntimeContext(com.alipay.sofa.runtime.spi.component.SofaRuntimeContext) Test(org.junit.Test)

Example 17 with SofaRuntimeManager

use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.

the class SofaRuntimeAutoConfiguration method sofaRuntimeManager.

@Bean
@ConditionalOnMissingBean
public static SofaRuntimeManager sofaRuntimeManager(Environment environment, BindingConverterFactory bindingConverterFactory, BindingAdapterFactory bindingAdapterFactory) {
    ClientFactoryInternal clientFactoryInternal = new ClientFactoryImpl();
    SofaRuntimeManager sofaRuntimeManager = new StandardSofaRuntimeManager(environment.getProperty("spring.application.name"), Thread.currentThread().getContextClassLoader(), clientFactoryInternal);
    sofaRuntimeManager.getComponentManager().registerComponentClient(ReferenceClient.class, new ReferenceClientImpl(sofaRuntimeManager.getSofaRuntimeContext(), bindingConverterFactory, bindingAdapterFactory));
    sofaRuntimeManager.getComponentManager().registerComponentClient(ServiceClient.class, new ServiceClientImpl(sofaRuntimeManager.getSofaRuntimeContext(), bindingConverterFactory, bindingAdapterFactory));
    SofaFramework.registerSofaRuntimeManager(sofaRuntimeManager);
    return sofaRuntimeManager;
}
Also used : ClientFactoryImpl(com.alipay.sofa.runtime.client.impl.ClientFactoryImpl) ClientFactoryInternal(com.alipay.sofa.runtime.spi.client.ClientFactoryInternal) ReferenceClientImpl(com.alipay.sofa.runtime.service.client.ReferenceClientImpl) StandardSofaRuntimeManager(com.alipay.sofa.runtime.component.impl.StandardSofaRuntimeManager) ServiceClientImpl(com.alipay.sofa.runtime.service.client.ServiceClientImpl) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager) StandardSofaRuntimeManager(com.alipay.sofa.runtime.component.impl.StandardSofaRuntimeManager) ConditionalOnMissingBean(org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean) ConditionalOnMissingBean(org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean) Bean(org.springframework.context.annotation.Bean)

Example 18 with SofaRuntimeManager

use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.

the class BeanPostProcessorOrderTest method getApplicationShutdownAwares.

@SuppressWarnings("unchecked")
private List<RuntimeShutdownAware> getApplicationShutdownAwares() throws Exception {
    SofaRuntimeManager sofaRuntimeManager = sofaRuntimeContext.getSofaRuntimeManager();
    Field applicationShutdownAwaresField = sofaRuntimeManager.getClass().getDeclaredField("runtimeShutdownAwares");
    applicationShutdownAwaresField.setAccessible(true);
    return (List<RuntimeShutdownAware>) applicationShutdownAwaresField.get(sofaRuntimeManager);
}
Also used : Field(java.lang.reflect.Field) List(java.util.List) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager)

Example 19 with SofaRuntimeManager

use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.

the class SofaFrameworkInitializer method addSofaRuntimeManager.

private static void addSofaRuntimeManager(String appName, ConfigurableApplicationContext applicationContext) {
    if (!SofaFrameworkHolder.containsSofaFramework()) {
        SofaFrameworkHolder.setSofaFramework(new SofaFrameworkImpl());
    }
    SofaFrameworkImpl sofaFramework = (SofaFrameworkImpl) SofaFrameworkHolder.getSofaFramework();
    AppConfiguration applicationConfiguration = createAppConfigurationImpl(applicationContext);
    ClientFactoryInternal clientFactoryInternal = new ClientFactoryImpl();
    SofaRuntimeManager sofaRuntimeManager = new StandardSofaRuntimeManager(appName, SofaFrameworkInitializer.class.getClassLoader(), applicationConfiguration, clientFactoryInternal);
    ComponentManager componentManager = sofaRuntimeManager.getComponentManager();
    // register service client & reference client
    componentManager.registerComponentClient(ServiceClient.class, new ServiceClientImpl(sofaRuntimeManager.getSofaRuntimeContext()));
    componentManager.registerComponentClient(ReferenceClient.class, new ReferenceClientImpl(sofaRuntimeManager.getSofaRuntimeContext()));
    sofaFramework.registerSofaRuntimeManager(sofaRuntimeManager);
}
Also used : ClientFactoryImpl(com.alipay.sofa.runtime.client.impl.ClientFactoryImpl) ClientFactoryInternal(com.alipay.sofa.runtime.spi.client.ClientFactoryInternal) SofaFrameworkImpl(com.alipay.sofa.runtime.SofaFrameworkImpl) AppConfiguration(com.alipay.sofa.runtime.api.component.AppConfiguration) ComponentManager(com.alipay.sofa.runtime.spi.component.ComponentManager) ReferenceClientImpl(com.alipay.sofa.runtime.service.client.ReferenceClientImpl) StandardSofaRuntimeManager(com.alipay.sofa.runtime.component.impl.StandardSofaRuntimeManager) ServiceClientImpl(com.alipay.sofa.runtime.service.client.ServiceClientImpl) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager) StandardSofaRuntimeManager(com.alipay.sofa.runtime.component.impl.StandardSofaRuntimeManager)

Example 20 with SofaRuntimeManager

use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.

the class SofaEventHandlerTest method testDynamicProxyFinder.

@Test
public void testDynamicProxyFinder() throws Exception {
    SofaFramework.registerSofaRuntimeManager(sofaRuntimeManager);
    new MockUp<DynamicJvmServiceProxyFinder>() {

        @Mock
        public Biz getBiz(SofaRuntimeManager sofaRuntimeManager) {
            return biz;
        }
    };
    new Expectations() {

        {
            biz.getIdentity();
            result = "MockName:MockVersion";
            biz.getBizState();
            result = BizState.ACTIVATED;
            sofaRuntimeManager.getAppClassLoader();
            result = ctx.getClassLoader().getParent();
        }
    };
    new Expectations() {

        {
            sofaRuntimeManager.getComponentManager();
            result = ((SofaRuntimeContext) ctx.getBean("sofaRuntimeContext")).getComponentManager();
            contract.getInterfaceType();
            result = SampleService.class;
            contract.getUniqueId();
            result = "";
            contract.getBinding(JvmBinding.JVM_BINDING_TYPE);
            result = new JvmBinding();
            invocation.getArguments();
            result = new Object[] {};
            invocation.getMethod();
            result = SampleService.class.getMethod("service");
        }
    };
    DynamicJvmServiceProxyFinder.getDynamicJvmServiceProxyFinder().setHasFinishStartup(true);
    ServiceProxy serviceProxy = DynamicJvmServiceProxyFinder.getDynamicJvmServiceProxyFinder().findServiceProxy(ctx.getClassLoader(), contract);
    try {
        Assert.assertTrue(SofaEventHandlerTest.class.getName().equals(serviceProxy.invoke(invocation)));
    } catch (Throwable throwable) {
        throw new RuntimeException("testDynamicProxyFinder case failed.", throwable);
    }
}
Also used : Expectations(mockit.Expectations) ServiceProxy(com.alipay.sofa.runtime.spi.service.ServiceProxy) DefaultSampleService(com.alipay.sofa.runtime.test.beans.service.DefaultSampleService) SampleService(com.alipay.sofa.runtime.test.beans.facade.SampleService) MockUp(mockit.MockUp) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager) JvmBinding(com.alipay.sofa.runtime.service.binding.JvmBinding) Test(org.junit.Test)

Aggregations

SofaRuntimeManager (com.alipay.sofa.runtime.spi.component.SofaRuntimeManager)33 StandardSofaRuntimeManager (com.alipay.sofa.runtime.component.impl.StandardSofaRuntimeManager)15 ClientFactoryImpl (com.alipay.sofa.runtime.client.impl.ClientFactoryImpl)11 ClientFactoryInternal (com.alipay.sofa.runtime.spi.client.ClientFactoryInternal)11 ConditionalOnMissingBean (org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean)10 Bean (org.springframework.context.annotation.Bean)10 ReferenceClientImpl (com.alipay.sofa.runtime.service.client.ReferenceClientImpl)9 ServiceClientImpl (com.alipay.sofa.runtime.service.client.ServiceClientImpl)9 ServiceComponent (com.alipay.sofa.runtime.service.component.ServiceComponent)8 Biz (com.alipay.sofa.ark.spi.model.Biz)6 Test (org.junit.Test)6 ComponentHealthChecker (com.alipay.sofa.healthcheck.impl.ComponentHealthChecker)4 JvmBinding (com.alipay.sofa.runtime.service.binding.JvmBinding)4 ComponentInfo (com.alipay.sofa.runtime.spi.component.ComponentInfo)4 SofaRuntimeContext (com.alipay.sofa.runtime.spi.component.SofaRuntimeContext)4 HashMap (java.util.HashMap)4 LinkedHashMap (java.util.LinkedHashMap)4 Map (java.util.Map)4 ApplicationRuntimeModel (com.alipay.sofa.isle.ApplicationRuntimeModel)2 DefaultModuleDeploymentValidator (com.alipay.sofa.isle.deployment.impl.DefaultModuleDeploymentValidator)2