- private Metadata parseRpcImplementation(Element element, ParserContext context) {
- registerRpcRegistryServiceRefBean(context);
-
- MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class);
- metadata.setId(context.generateId());
- metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
- metadata.setActivation(ReferenceMetadata.ACTIVATION_EAGER);
- metadata.setRuntimeClass(RpcImplementationBean.class);
- metadata.setInitMethod("init");
- metadata.setDestroyMethod("destroy");
- metadata.addProperty("bundle", createRef(context, "blueprintBundle"));
- metadata.addProperty("rpcRegistry", createRef(context, RPC_REGISTRY_NAME));
- metadata.addProperty("implementation", createRef(context, element.getAttribute(REF_ATTR)));
-
- if(element.hasAttribute(INTERFACE)) {
- metadata.addProperty("interfaceName", createValue(context, element.getAttribute(INTERFACE)));
- }
-
- LOG.debug("parseAddRpcImplementation returning {}", metadata);
-
- return metadata;
- }
-
- private Metadata parseRoutedRpcImplementation(Element element, ParserContext context) {
- registerRpcRegistryServiceRefBean(context);
- registerRoutedRpcRegistrationConverter(context);
-
- ComponentFactoryMetadata metadata = new RoutedRpcMetadata(getId(context, element),
- element.getAttribute(INTERFACE), element.getAttribute(REF_ATTR));
-
- LOG.debug("parseRoutedRpcImplementation returning {}", metadata);
-
- return metadata;
- }
-
- private Metadata parseRpcService(Element element, ParserContext context) {
- registerRpcRegistryServiceRefBean(context);
-
- ComponentFactoryMetadata metadata = new RpcServiceMetadata(getId(context, element),
- element.getAttribute(INTERFACE));
-
- LOG.debug("parseRpcService returning {}", metadata);
-
- return metadata;
- }
-
- private void registerRoutedRpcRegistrationConverter(ParserContext context) {
- ComponentDefinitionRegistry registry = context.getComponentDefinitionRegistry();
- if(registry.getComponentDefinition(ROUTED_RPC_REG_CONVERTER_NAME) == null) {
- MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class);
- metadata.setId(ROUTED_RPC_REG_CONVERTER_NAME);
- metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
- metadata.setActivation(ReferenceMetadata.ACTIVATION_LAZY);
- metadata.setRuntimeClass(RoutedRpcRegistrationConverter.class);
- registry.registerTypeConverter(metadata);
- }
- }
-
- private void registerRpcRegistryServiceRefBean(ParserContext context) {
- ComponentDefinitionRegistry registry = context.getComponentDefinitionRegistry();
- if(registry.getComponentDefinition(RPC_REGISTRY_NAME) == null) {
- MutableReferenceMetadata metadata = createServiceRef(context, RpcProviderRegistry.class, null);
- metadata.setId(RPC_REGISTRY_NAME);
- registry.registerComponentDefinition(metadata);
- }
- }
-
- private Metadata parseNotificationListener(Element element, ParserContext context) {
- registerNotificationServiceRefBean(context);
-
- MutableBeanMetadata metadata = context.createMetadata(MutableBeanMetadata.class);
- metadata.setId(context.generateId());
- metadata.setScope(BeanMetadata.SCOPE_SINGLETON);
- metadata.setActivation(ReferenceMetadata.ACTIVATION_EAGER);
- metadata.setRuntimeClass(NotificationListenerBean.class);
- metadata.setInitMethod("init");
- metadata.setDestroyMethod("destroy");
- metadata.addProperty("bundle", createRef(context, "blueprintBundle"));
- metadata.addProperty("notificationService", createRef(context, NOTIFICATION_SERVICE_NAME));
- metadata.addProperty("notificationListener", createRef(context, element.getAttribute(REF_ATTR)));
-
- LOG.debug("parseNotificationListener returning {}", metadata);
-
- return metadata;
- }
-
- private void registerNotificationServiceRefBean(ParserContext context) {
- ComponentDefinitionRegistry registry = context.getComponentDefinitionRegistry();
- if(registry.getComponentDefinition(NOTIFICATION_SERVICE_NAME) == null) {
- MutableReferenceMetadata metadata = createServiceRef(context, NotificationService.class, null);
- metadata.setId(NOTIFICATION_SERVICE_NAME);
- registry.registerComponentDefinition(metadata);
- }
- }
-
- private Metadata parseClusteredAppConfig(Element element, ParserContext context) {