Package org.springframework.beans.factory.support

Examples of org.springframework.beans.factory.support.BeanDefinitionRegistry


      if (logger.isInfoEnabled())
        logger.info(beanName + ": " +  beanDefinition.getScope());

      if (beanDefinition.getScope().equals("dynamic") && beanFactory instanceof BeanDefinitionRegistry) {

        final BeanDefinitionRegistry bdr = (BeanDefinitionRegistry) beanFactory;

        final String implBeanName = beanName + "Impl";
        final String targetSourceBeanName = beanName + "TargetSource";

        bdr.registerBeanDefinition(implBeanName, beanDefinition);

        /*
         * <bean id="testInterface"
         * class="org.springframework.aop.framework.ProxyFactoryBean">
         * <property name="targetSource"> <bean
         * class="org.impalaframework.spring.externalconfig.RefreshableTargetSourceFactoryBean">
         * <property name="beanName" methodName = "testInterfaceImpl"/>
         * </bean> </property> </bean>
         */

        RootBeanDefinition targetSource = new RootBeanDefinition(PrototypeTargetSource.class);
        targetSource.getPropertyValues().addPropertyValue("targetBeanName", implBeanName);
        bdr.registerBeanDefinition(targetSourceBeanName, targetSource);

        RootBeanDefinition proxy = new RootBeanDefinition(ProxyFactoryBean.class);
        proxy.getPropertyValues().addPropertyValue("targetSource",
            new RuntimeBeanReference(targetSourceBeanName));
        bdr.registerBeanDefinition(beanName, proxy);

      }
    }
  }
View Full Code Here


    catch (NoSuchBeanDefinitionException e) {
      String interfaceName = properties.getProperty(beanName);

      log.debug("bean name '" + beanName + "' interface name " + interfaceName);

      BeanDefinitionRegistry bdr = (BeanDefinitionRegistry) this;

      RootBeanDefinition interceptorDefinition = new RootBeanDefinition(DebuggingInterceptor.class);
      bdr.registerBeanDefinition(beanName + "_interceptor", interceptorDefinition);

      RootBeanDefinition proxyDefinition = new RootBeanDefinition(ProxyFactoryBean.class);
      proxyDefinition.getPropertyValues().addPropertyValue("interceptorNames", beanName + "_interceptor");
      proxyDefinition.getPropertyValues().addPropertyValue("proxyInterfaces", interfaceName);

      bdr.registerBeanDefinition(beanName, proxyDefinition);

      return proxyDefinition;
    }
  }
View Full Code Here

   */
  protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) {
    // Invoke BeanDefinitionRegistryPostProcessors first, if any.
    Set<String> processedBeans = new HashSet<String>();
    if (beanFactory instanceof BeanDefinitionRegistry) {
      BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory;
      List<BeanFactoryPostProcessor> regularPostProcessors = new LinkedList<BeanFactoryPostProcessor>();
      List<BeanDefinitionRegistryPostProcessor> registryPostProcessors =
          new LinkedList<BeanDefinitionRegistryPostProcessor>();
      for (BeanFactoryPostProcessor postProcessor : getBeanFactoryPostProcessors()) {
        if (postProcessor instanceof BeanDefinitionRegistryPostProcessor) {
View Full Code Here

    registryOrEscalateApcAsRequired(cls, parserContext, sourceElement);
  }

  private static void registryOrEscalateApcAsRequired(Class cls, ParserContext parserContext, Object sourceElement) {
    Assert.notNull(parserContext, "ParserContext must not be null");
    BeanDefinitionRegistry registry = parserContext.getRegistry();

    if (registry.containsBeanDefinition(AUTO_PROXY_CREATOR_BEAN_NAME)) {
      BeanDefinition apcDefinition = registry.getBeanDefinition(AUTO_PROXY_CREATOR_BEAN_NAME);
      if (cls.getName().equals(apcDefinition.getBeanClassName())) {
        return;
      }
      int currentPriority = findPriorityForClass(apcDefinition.getBeanClassName());
      int requiredPriority = findPriorityForClass(cls.getName());
      if (currentPriority < requiredPriority) {
        apcDefinition.setBeanClassName(cls.getName());
      }
    }

    else {
      RootBeanDefinition beanDefinition = new RootBeanDefinition(cls);
      beanDefinition.setSource(parserContext.extractSource(sourceElement));
      beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
      beanDefinition.getPropertyValues().addPropertyValue("order", new Integer(Ordered.HIGHEST_PRECEDENCE));
      registry.registerBeanDefinition(AUTO_PROXY_CREATOR_BEAN_NAME, beanDefinition);
      // Notify of bean registration.
      BeanComponentDefinition componentDefinition =
          new BeanComponentDefinition(beanDefinition, AUTO_PROXY_CREATOR_BEAN_NAME);
      parserContext.registerComponent(componentDefinition);
    }
View Full Code Here


  public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) {
    String originalBeanName = definition.getBeanName();
    BeanDefinition targetDefinition = definition.getBeanDefinition();
    BeanDefinitionRegistry registry = parserContext.getRegistry();

    // Create a scoped proxy definition for the original bean name,
    // "hiding" the target bean in an internal target definition.
    String targetBeanName = TARGET_NAME_PREFIX + originalBeanName;
    RootBeanDefinition scopedProxyDefinition = new RootBeanDefinition(ScopedProxyFactoryBean.class);
    scopedProxyDefinition.getPropertyValues().addPropertyValue("targetBeanName", targetBeanName);

    boolean proxyTargetClass = true;
    if (node instanceof Element) {
      Element ele = (Element) node;
      if (ele.hasAttribute(PROXY_TARGET_CLASS)) {
        proxyTargetClass = Boolean.valueOf(ele.getAttribute(PROXY_TARGET_CLASS)).booleanValue();
      }
    }
    if (proxyTargetClass) {
      targetDefinition.setAttribute(AutoProxyUtils.PRESERVE_TARGET_CLASS_ATTRIBUTE, Boolean.TRUE);
      // ScopedFactoryBean's "proxyTargetClass" default is TRUE, so we don't need to set it explicitly here.
    }
    else {
      scopedProxyDefinition.getPropertyValues().addPropertyValue("proxyTargetClass", Boolean.FALSE);
    }

    if (targetDefinition instanceof AbstractBeanDefinition) {
      AbstractBeanDefinition abd = (AbstractBeanDefinition) targetDefinition;
      scopedProxyDefinition.setAutowireCandidate(abd.isAutowireCandidate());
      // The target bean should be ignored in favor of the scoped proxy.
      abd.setAutowireCandidate(false);
    }

    // Register the target bean as separate bean in the factory.
    registry.registerBeanDefinition(targetBeanName, targetDefinition);

    // Return the scoped proxy definition as primary bean definition
    // (potentially an inner bean).
    return new BeanDefinitionHolder(scopedProxyDefinition, originalBeanName, definition.getAliases());
  }
View Full Code Here

* @since 1.2
*/
public class ZkConfigDefinitionParser implements BeanDefinitionParser {

  public BeanDefinition parse(Element element, ParserContext pc) {
    final BeanDefinitionRegistry reg = pc.getRegistry();
   
    //register ZK scopes
        final BeanDefinitionBuilder builder =
          BeanDefinitionBuilder.rootBeanDefinition(CustomScopeConfigurer.class);
    final Map scopes = new HashMap();
    scopes.put("application", new ApplicationScope());
    scopes.put("desktop", new DesktopScope());
    scopes.put("page", new PageScope());
    scopes.put("idspace", new IdSpaceScope());
    scopes.put("execution", new ExecutionScope());
    builder.addPropertyValue("scopes", scopes);
        reg.registerBeanDefinition(ZkBeanIds.ZK_SCOPE_CONFIG, builder.getBeanDefinition());
       
        //register ZK implicit object factory bean
        registerImplicitObjects(reg);
   
        //register singleton ZkSpringBeanBindingComposer (used to bind ZK component as Spring bean),
        //see ZkDesktopReuseUiFactory#applyZkSpringBeanBindingComposer(PageDefinition pd)
        final BeanDefinitionBuilder bbuilder =
          BeanDefinitionBuilder.rootBeanDefinition(ZkSpringBeanBindingComposer.class);
        reg.registerBeanDefinition(ZkBeanIds.ZK_BINDING_COMPOSER, bbuilder.getBeanDefinition());
       
        //register PropertyEditor for ZkComponentProxyFactoryBean#type
        final BeanDefinitionBuilder xbuilder =
          BeanDefinitionBuilder.rootBeanDefinition(CustomEditorConfigurer.class);
        final Map editors = new HashMap();
        editors.put("org.zkoss.spring.bean.TypePropertyEditor", "org.zkoss.spring.bean.TypePropertyEditor");
        xbuilder.addPropertyValue("customEditors", editors);
        reg.registerBeanDefinition(ZkBeanIds.ZK_TYPE_PROPERTY_EDITOR, xbuilder.getBeanDefinition());

        return null;
  }
View Full Code Here

    String scope =  element.getAttribute(ATT_SCOPE);
    if (!StringUtils.hasText(scope)) {
      scope = "idspace";
    }
   
    final BeanDefinitionRegistry reg = pc.getRegistry();
        final String idsStr = element.getAttribute(ATT_IDS);
      if (StringUtils.hasText(idsStr)) {
            final BeanDefinitionBuilder builder =
              BeanDefinitionBuilder.rootBeanDefinition(ZkComponentFactoryBean.class);
            builder.setScope(scope);
            final BeanDefinition bd = builder.getBeanDefinition();
        final Collection ids = CollectionsX.parse(new LinkedHashSet(), idsStr, ',');
        for (final Iterator it = ids.iterator(); it.hasNext();) {
          final String id = (String) it.next();
          reg.registerBeanDefinition(id, bd);
        }
    }
    return null;
  }
View Full Code Here

* @version $Rev: 987670 $ $Date: 2010-08-20 16:42:07 -0700 (Fri, 20 Aug 2010) $
*/
public class ScaPropertyBeanDefinitionParser implements BeanDefinitionParser {

    public BeanDefinition parse(Element element, ParserContext parserContext) {
        BeanDefinitionRegistry registry = parserContext.getRegistry();
        if (registry instanceof SCAGenericApplicationContext) {
            SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
            SpringSCAPropertyElement propertyElement =
                new SpringSCAPropertyElement(element.getAttributeNS(null, "name"), element.getAttributeNS(null, "type"));
            context.addSCAPropertyElement(propertyElement);
View Full Code Here

* @version $Rev: 988752 $ $Date: 2010-08-24 15:50:49 -0700 (Tue, 24 Aug 2010) $
*/
public class ScaReferenceBeanDefinitionParser implements BeanDefinitionParser {

    public BeanDefinition parse(Element element, ParserContext parserContext) {
        BeanDefinitionRegistry registry = parserContext.getRegistry();
        if (registry instanceof SCAGenericApplicationContext) {
            SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
            SpringSCAReferenceElement referenceElement =
                new SpringSCAReferenceElement(getAttribute(element, "name"), getAttribute(element, "type"));
            referenceElement.setDefaultBean(getAttribute(element, "default"));
View Full Code Here

* @version $Rev: 988752 $ $Date: 2010-08-24 15:50:49 -0700 (Tue, 24 Aug 2010) $
*/
public class ScaServiceBeanDefinitionParser implements BeanDefinitionParser {

    public BeanDefinition parse(Element element, ParserContext parserContext) {
        BeanDefinitionRegistry registry = parserContext.getRegistry();
        if (registry instanceof SCAGenericApplicationContext) {
            SCAGenericApplicationContext context = (SCAGenericApplicationContext)registry;
            SpringSCAServiceElement serviceElement =
                new SpringSCAServiceElement(getAttribute(element, "name"), getAttribute(element, "target"));
            serviceElement.setType(getAttribute(element, "type"));
View Full Code Here

TOP

Related Classes of org.springframework.beans.factory.support.BeanDefinitionRegistry

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.