use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.
the class DynamicJvmServiceProxyFinder method afterBizUninstall.
public void afterBizUninstall(Biz biz) {
if (!SofaRuntimeProperties.isDynamicJvmServiceCacheEnable()) {
return;
}
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());
JvmServiceTargetHabitat jvmServiceTargetHabitat = jvmServiceTargetHabitats.get(uniqueName);
if (jvmServiceTargetHabitat != null) {
jvmServiceTargetHabitat.removeServiceComponent(biz.getBizVersion());
}
}
}
}
}
}
use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.
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);
}
}
}
}
}
use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.
the class SofaStartupIsleAutoConfiguration method sofaRuntimeManager.
@Bean(destroyMethod = "")
@ConditionalOnMissingBean
public static SofaRuntimeManager sofaRuntimeManager() {
ClientFactoryInternal clientFactoryInternal = new ClientFactoryImpl();
SofaRuntimeManager sofaRuntimeManager = new StandardSofaRuntimeManager("IsleStageCostTest", Thread.currentThread().getContextClassLoader(), clientFactoryInternal);
SofaFramework.registerSofaRuntimeManager(sofaRuntimeManager);
return sofaRuntimeManager;
}
use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.
the class RuntimeConfiguration method sofaRuntimeManager.
@Bean
@ConditionalOnMissingBean
public static SofaRuntimeManager sofaRuntimeManager(Environment environment, BindingConverterFactory bindingConverterFactory, BindingAdapterFactory bindingAdapterFactory) {
String appName = environment.getProperty(SofaBootConstants.APP_NAME_KEY);
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;
}
use of com.alipay.sofa.runtime.spi.component.SofaRuntimeManager in project sofa-boot by alipay.
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;
}
Aggregations