Search in sources :

Example 26 with SofaRuntimeManager

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

the class SofaBizUninstallEventHandler method doUninstallBiz.

private void doUninstallBiz(Biz biz) {
    // Remove dynamic JVM service cache
    DynamicJvmServiceProxyFinder.getDynamicJvmServiceProxyFinder().afterBizUninstall(biz);
    SofaRuntimeProperties.unRegisterProperties(biz.getBizClassLoader());
    SofaRuntimeManager sofaRuntimeManager = getSofaRuntimeManager(biz);
    SofaFramework.unRegisterSofaRuntimeManager(sofaRuntimeManager);
    sofaRuntimeManager.shutDownExternally();
}
Also used : SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager)

Example 27 with SofaRuntimeManager

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

the class MultiApplicationHealthIndicator method health.

@Override
public Health health() {
    boolean allPassed = true;
    Health.Builder builder = new Health.Builder();
    for (SofaRuntimeManager sofaRuntimeManager : SofaFramework.getRuntimeSet()) {
        Biz biz = DynamicJvmServiceProxyFinder.getBiz(sofaRuntimeManager);
        if (biz == null) {
            continue;
        }
        if (!sofaRuntimeManager.isLivenessHealth()) {
            allPassed = false;
            builder.withDetail(String.format("Biz: %s health check", biz.getIdentity()), "failed");
        } else {
            builder.withDetail(String.format("Biz: %s health check", biz.getIdentity()), "passed");
        }
    }
    if (allPassed) {
        return builder.up().build();
    } else {
        return builder.down().build();
    }
}
Also used : Biz(com.alipay.sofa.ark.spi.model.Biz) Health(org.springframework.boot.actuate.health.Health) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager)

Example 28 with SofaRuntimeManager

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

the class ModelCreatingStage method doProcess.

@Override
protected void doProcess() throws Exception {
    ApplicationRuntimeModel application = new ApplicationRuntimeModel();
    application.setAppName(appName);
    SofaRuntimeManager sofaRuntimeManager = applicationContext.getBean(SofaRuntimeManager.class);
    application.setSofaRuntimeContext(sofaRuntimeManager.getSofaRuntimeContext());
    application.setModuleDeploymentValidator(new DefaultModuleDeploymentValidator());
    getAllDeployments(application);
    applicationContext.getBeanFactory().registerSingleton(SofaBootConstants.APPLICATION, application);
}
Also used : DefaultModuleDeploymentValidator(com.alipay.sofa.isle.deployment.impl.DefaultModuleDeploymentValidator) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager) ApplicationRuntimeModel(com.alipay.sofa.isle.ApplicationRuntimeModel)

Example 29 with SofaRuntimeManager

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

the class RuntimeTestConfiguration method sofaRuntimeManager.

@Bean
@ConditionalOnMissingBean
public static SofaRuntimeManager sofaRuntimeManager(@Value("${spring.application.name}") String appName, BindingConverterFactory bindingConverterFactory, BindingAdapterFactory bindingAdapterFactory) {
    ClientFactoryInternal clientFactoryInternal = new ClientFactoryImpl();
    SofaRuntimeManager sofaRuntimeManager = new StandardSofaRuntimeManager(appName, 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 30 with SofaRuntimeManager

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

the class DynamicJvmServiceProxyFinder method afterBizStartup.

public void afterBizStartup(Biz biz) {
    if (!SofaRuntimeProperties.isDynamicJvmServiceCacheEnable()) {
        return;
    }
    // The overhead is acceptable as this only happens after biz's successful installation
    for (SofaRuntimeManager runtimeManager : SofaFramework.getRuntimeSet()) {
        if (runtimeManager.getAppClassLoader().equals(biz.getBizClassLoader())) {
            for (ComponentInfo componentInfo : runtimeManager.getComponentManager().getComponents()) {
                if (componentInfo instanceof ServiceComponent) {
                    ServiceComponent serviceComponent = (ServiceComponent) componentInfo;
                    String uniqueName = getUniqueName(serviceComponent.getService());
                    jvmServiceTargetHabitats.computeIfAbsent(uniqueName, e -> new JvmServiceTargetHabitat(biz.getBizName()));
                    JvmServiceTargetHabitat jvmServiceTargetHabitat = jvmServiceTargetHabitats.get(uniqueName);
                    jvmServiceTargetHabitat.addServiceComponent(biz.getBizVersion(), serviceComponent);
                }
            }
        }
    }
}
Also used : ServiceComponent(com.alipay.sofa.runtime.service.component.ServiceComponent) ComponentInfo(com.alipay.sofa.runtime.spi.component.ComponentInfo) SofaRuntimeManager(com.alipay.sofa.runtime.spi.component.SofaRuntimeManager)

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