use of com.alipay.sofa.runtime.spi.component.Implementation in project sofa-boot by alipay.
the class ServiceFactoryBean method doAfterPropertiesSet.
@Override
protected void doAfterPropertiesSet() {
if (!apiType && hasSofaServiceAnnotation()) {
throw new ServiceRuntimeException(ErrorCode.convert("01-00103", beanId, ref.getClass()));
}
Implementation implementation = new DefaultImplementation();
implementation.setTarget(ref);
service = buildService();
// default add jvm binding and service jvm binding should set serialize as true
if (bindings.size() == 0) {
JvmBindingParam jvmBindingParam = new JvmBindingParam().setSerialize(true);
bindings.add(new JvmBinding().setJvmBindingParam(jvmBindingParam));
}
for (Binding binding : bindings) {
service.addBinding(binding);
}
ComponentInfo componentInfo = new ServiceComponent(implementation, service, bindingAdapterFactory, sofaRuntimeContext);
componentInfo.setApplicationContext(applicationContext);
sofaRuntimeContext.getComponentManager().register(componentInfo);
}
use of com.alipay.sofa.runtime.spi.component.Implementation in project sofa-boot by alipay.
the class ExtensionClientImpl method publishExtensionPoint.
@Override
public void publishExtensionPoint(ExtensionPointParam extensionPointParam) {
Assert.notNull(extensionPointParam, "extensionPointParam can not be null.");
Assert.notNull(extensionPointParam.getName(), "Extension point name can not be null.");
Assert.notNull(extensionPointParam.getContributionClass(), "Extension point contribution can not be null.");
Assert.notNull(extensionPointParam.getTarget(), "Extension point target can not be null.");
ExtensionPoint extensionPoint = new ExtensionPointImpl(extensionPointParam.getName(), extensionPointParam.getContributionClass());
Implementation implementation = new DefaultImplementation(extensionPointParam.getTargetName());
implementation.setTarget(extensionPointParam.getTarget());
ComponentInfo extensionPointComponent = new ExtensionPointComponent(extensionPoint, sofaRuntimeContext, implementation);
sofaRuntimeContext.getComponentManager().register(extensionPointComponent);
}
use of com.alipay.sofa.runtime.spi.component.Implementation in project sofa-boot by alipay.
the class ExtensionPointFactoryBean method publishAsNuxeoExtensionPoint.
private void publishAsNuxeoExtensionPoint(Class<?> beanClass) throws Exception {
Assert.notNull(beanClass, "Service must be implement!");
ExtensionPointBuilder extensionPointBuilder = ExtensionPointBuilder.genericExtensionPoint(this.name, applicationContext.getClassLoader());
if (this.contribution != null && this.contribution.length != 0) {
for (int i = 0; i < contribution.length; i++) {
extensionPointBuilder.addContribution(contribution[i]);
}
}
Assert.hasLength(beanName, "required property 'beanName' has not been set for creating implementation");
Assert.notNull(applicationContext, "required property 'applicationContext' has not been set for creating implementation");
Implementation implementation = new SpringImplementationImpl(targetBeanName, applicationContext);
ComponentInfo extensionPointComponent = new ExtensionPointComponent(extensionPointBuilder.getExtensionPoint(), sofaRuntimeContext, implementation);
extensionPointComponent.setApplicationContext(applicationContext);
sofaRuntimeContext.getComponentManager().register(extensionPointComponent);
}
use of com.alipay.sofa.runtime.spi.component.Implementation in project sofa-boot by sofastack.
the class SpringContextInstallStage method publishContextAsSofaComponent.
private void publishContextAsSofaComponent(DeploymentDescriptor deployment, ApplicationRuntimeModel application, ApplicationContext context) {
ComponentName componentName = ComponentNameFactory.createComponentName(SpringContextComponent.SPRING_COMPONENT_TYPE, deployment.getModuleName());
Implementation implementation = new SpringContextImplementation(context);
ComponentInfo componentInfo = new SpringContextComponent(componentName, implementation, application.getSofaRuntimeContext());
application.getSofaRuntimeContext().getComponentManager().register(componentInfo);
}
use of com.alipay.sofa.runtime.spi.component.Implementation in project sofa-boot by sofastack.
the class ExtensionClientImpl method publishExtensionPoint.
@Override
public void publishExtensionPoint(ExtensionPointParam extensionPointParam) {
Assert.notNull(extensionPointParam, "extensionPointParam can not be null.");
Assert.notNull(extensionPointParam.getName(), "Extension point name can not be null.");
Assert.notNull(extensionPointParam.getContributionClass(), "Extension point contribution can not be null.");
Assert.notNull(extensionPointParam.getTarget(), "Extension point target can not be null.");
ExtensionPoint extensionPoint = new ExtensionPointImpl(extensionPointParam.getName(), extensionPointParam.getContributionClass());
Implementation implementation = new DefaultImplementation(extensionPointParam.getTargetName());
implementation.setTarget(extensionPointParam.getTarget());
ComponentInfo extensionPointComponent = new ExtensionPointComponent(extensionPoint, sofaRuntimeContext, implementation);
sofaRuntimeContext.getComponentManager().register(extensionPointComponent);
}
Aggregations