/** * Append the specified bean name to the list of beans that this definition * depends on. */ public BeanDefinitionBuilder addDependsOn(String beanName) { if (this.beanDefinition.getDependsOn() == null) { this.beanDefinition.setDependsOn(beanName); } else { String[] added = ObjectUtils.addObjectToArray(this.beanDefinition.getDependsOn(), beanName); this.beanDefinition.setDependsOn(added); } return this; }
/** * Append the specified bean name to the list of beans that this definition * depends on. */ public BeanDefinitionBuilder addDependsOn(String beanName) { if (this.beanDefinition.getDependsOn() == null) { this.beanDefinition.setDependsOn(beanName); } else { String[] added = ObjectUtils.addObjectToArray(this.beanDefinition.getDependsOn(), beanName); this.beanDefinition.setDependsOn(added); } return this; }
@Test public void dependsOnMetadataIsPropagated() { @Configuration class Config { @Bean() @DependsOn({"bar", "baz"}) Object foo() { return null; } } assertArrayEquals("dependsOn metadata was not propagated", new String[] {"bar", "baz"}, beanDef(Config.class).getDependsOn()); }
setDependsOn(otherAbd.getDependsOn()); setAutowireCandidate(otherAbd.isAutowireCandidate()); setPrimary(otherAbd.isPrimary());
setDependsOn(otherAbd.getDependsOn()); setAutowireCandidate(otherAbd.isAutowireCandidate()); setPrimary(otherAbd.isPrimary());
setDependsOn(originalAbd.getDependsOn()); setAutowireCandidate(originalAbd.isAutowireCandidate()); setPrimary(originalAbd.isPrimary());
/** * Append the specified bean name to the list of beans that this definition * depends on. */ public BeanDefinitionBuilder addDependsOn(String beanName) { if (this.beanDefinition.getDependsOn() == null) { this.beanDefinition.setDependsOn(new String[] {beanName}); } else { String[] added = ObjectUtils.addObjectToArray(this.beanDefinition.getDependsOn(), beanName); this.beanDefinition.setDependsOn(added); } return this; }
setDependsOn(originalAbd.getDependsOn()); setAutowireCandidate(originalAbd.isAutowireCandidate()); setPrimary(originalAbd.isPrimary());
setPrimary(otherAbd.isPrimary()); setDependencyCheck(otherAbd.getDependencyCheck()); setDependsOn(otherAbd.getDependsOn()); setNonPublicAccessAllowed(otherAbd.isNonPublicAccessAllowed()); setLenientConstructorResolution(otherAbd.isLenientConstructorResolution());
protected void processKey(ConfigurableListableBeanFactory beanFactory, String beanName, String property) { BeanDefinition bd = beanFactory.getBeanDefinition(beanName); if (bd instanceof AbstractBeanDefinition) { AbstractBeanDefinition abd = (AbstractBeanDefinition) bd; Set<String> dependsOn = new LinkedHashSet<String>(); String[] existingDependencies = abd.getDependsOn(); if (existingDependencies != null) { for (String name : existingDependencies) dependsOn.add(name); } String[] beanNames = property.split(","); for (String name : beanNames) dependsOn.add(name); abd.setDependsOn(dependsOn.toArray(new String[dependsOn.size()])); } else { _log.warn("bean definition for \"" + beanName + "\" does not extend AbstractBeanDefinition, so we can't set depends-on"); } }
protected void processKey(ConfigurableListableBeanFactory beanFactory, String beanName, String property) { BeanDefinition bd = beanFactory.getBeanDefinition(beanName); if (bd instanceof AbstractBeanDefinition) { AbstractBeanDefinition abd = (AbstractBeanDefinition) bd; Set<String> dependsOn = new LinkedHashSet<String>(); String[] existingDependencies = abd.getDependsOn(); if (existingDependencies != null) { for (String name : existingDependencies) dependsOn.add(name); } String[] beanNames = property.split(","); for (String name : beanNames) dependsOn.add(name); abd.setDependsOn(dependsOn.toArray(new String[dependsOn.size()])); } else { _log.warn("bean definition for \"" + beanName + "\" does not extend AbstractBeanDefinition, so we can't set depends-on"); } }
/** * Append the specified bean name to the list of beans that this definition * depends on. */ public BeanDefinitionBuilder addDependsOn(String beanName) { if (this.beanDefinition.getDependsOn() == null) { this.beanDefinition.setDependsOn(beanName); } else { String[] added = ObjectUtils.addObjectToArray(this.beanDefinition.getDependsOn(), beanName); this.beanDefinition.setDependsOn(added); } return this; }
@SuppressWarnings("unchecked") private void createDependencyOnJcl(Node node, BeanDefinitionHolder holder, ParserContext parserContext) { AbstractBeanDefinition definition = ( (AbstractBeanDefinition) holder.getBeanDefinition() ); String jclRef = node.getAttributes().getNamedItem( JCL_REF ).getNodeValue(); if( !parserContext.getRegistry().containsBeanDefinition( JCL_FACTORY ) ) { BeanDefinitionBuilder initializer = BeanDefinitionBuilder.rootBeanDefinition( JclObjectFactory.class, JCL_FACTORY_CONSTRUCTOR ); parserContext.getRegistry().registerBeanDefinition( JCL_FACTORY, initializer.getBeanDefinition() ); } if( parserContext.getRegistry().containsBeanDefinition( jclRef ) ) { String[] dependsOn = definition.getDependsOn(); if( dependsOn == null ) { dependsOn = new String[] { jclRef, JCL_FACTORY }; } else { List dependencies = new ArrayList( Arrays.asList( dependsOn ) ); dependencies.add( jclRef ); dependencies.add( JCL_FACTORY ); dependsOn = (String[]) dependencies.toArray( new String[0] ); } definition.setDependsOn( dependsOn ); } else throw new JclException( "JCL Bean definition " + jclRef + "not found" ); } }
if (!isEmptyArray(bd.getDependsOn())) { beanElement.addAttribute("depends-on", new RefValue(bd.getDependsOn()));
if (!isEmptyArray(bd.getDependsOn())) { beanElement.addAttribute("depends-on", new RefValue(bd.getDependsOn()));
public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext context) { AbstractBeanDefinition definition = ((AbstractBeanDefinition) holder .getBeanDefinition()); Attr attribute = (Attr) source; if (attribute.getLocalName().equals(ARTIFACT_XML_ATTRIBUTE_NAME)) { String artifactSpecifier = attribute.getValue(); definition.setAttribute(ARTIFACT_BEAN_ATTRIBUTE_NAME, artifactSpecifier); } else if (attribute.getLocalName().equals( REPOSITORY_XML_ATTRIBUTE_NAME)) { String repositoryBeanName = attribute.getValue(); definition.setAttribute(REPOSITORY_BEAN_ATTRIBUTE_NAME, repositoryBeanName); String[] dependsOn = definition.getDependsOn(); if (dependsOn == null) { dependsOn = new String[] { repositoryBeanName }; } else { List<String> dependencies = new ArrayList<String>(Arrays .asList(dependsOn)); dependencies.add(repositoryBeanName); dependsOn = dependencies.toArray(new String[0]); } definition.setDependsOn(dependsOn); } log.debug("Decorated bean '"+holder.getBeanName()+"'"); return holder; } }
public SimpleComponentMetadata(String name, BeanDefinition definition) { if (!(definition instanceof AbstractBeanDefinition)) { throw new IllegalArgumentException("Unknown bean definition passed in" + definition); } this.name = name; this.beanDefinition = (AbstractBeanDefinition) definition; String[] dpdOn = beanDefinition.getDependsOn(); if (ObjectUtils.isEmpty(dpdOn)) { dependsOn = Collections.<String> emptyList(); } else { List<String> dependencies = new ArrayList<String>(dpdOn.length); CollectionUtils.mergeArrayIntoCollection(dpdOn, dependencies); Collection<String> syntheticDependsOn = (Collection<String>) beanDefinition.getAttribute(CycleOrderingProcessor.SYNTHETIC_DEPENDS_ON); if (syntheticDependsOn != null) { dependencies.removeAll(syntheticDependsOn); } dependsOn = Collections.unmodifiableList(dependencies); } if (!StringUtils.hasText(name)) { // nested components are always lazy activation = ACTIVATION_LAZY; } else { activation = beanDefinition.isSingleton() ? (beanDefinition.isLazyInit() ? ACTIVATION_LAZY : ACTIVATION_EAGER) : ACTIVATION_LAZY; } }
public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext context) { AbstractBeanDefinition definition = ((AbstractBeanDefinition) holder .getBeanDefinition()); Attr attribute = (Attr) source; if (attribute.getLocalName().equals(ARTIFACT_XML_ATTRIBUTE_NAME)) { String artifactSpecifier = attribute.getValue(); definition.setAttribute(ARTIFACT_BEAN_ATTRIBUTE_NAME, artifactSpecifier); } else if (attribute.getLocalName().equals( REPOSITORY_XML_ATTRIBUTE_NAME)) { String repositoryBeanName = attribute.getValue(); definition.setAttribute(REPOSITORY_BEAN_ATTRIBUTE_NAME, repositoryBeanName); String[] dependsOn = definition.getDependsOn(); if (dependsOn == null) { dependsOn = new String[] { repositoryBeanName }; } else { List<String> dependencies = new ArrayList<String>(Arrays .asList(dependsOn)); dependencies.add(repositoryBeanName); dependsOn = dependencies.toArray(new String[0]); } definition.setDependsOn(dependsOn); } log.debug("Decorated bean '"+holder.getBeanName()+"'"); return holder; } }
setDependsOn(originalAbd.getDependsOn()); setAutowireCandidate(originalAbd.isAutowireCandidate()); copyQualifiersFrom(originalAbd);
/** * Create a new AbstractBeanDefinition as deep copy of the given * bean definition. * @param original the original bean definition to copy from */ protected AbstractBeanDefinition(AbstractBeanDefinition original) { this.beanClass = original.beanClass; setAbstract(original.isAbstract()); setSingleton(original.isSingleton()); setLazyInit(original.isLazyInit()); setConstructorArgumentValues(new ConstructorArgumentValues(original.getConstructorArgumentValues())); setPropertyValues(new MutablePropertyValues(original.getPropertyValues())); setMethodOverrides(new MethodOverrides(original.getMethodOverrides())); setAutowireMode(original.getAutowireMode()); setDependencyCheck(original.getDependencyCheck()); setInitMethodName(original.getInitMethodName()); setDestroyMethodName(original.getDestroyMethodName()); setFactoryMethodName(original.getFactoryMethodName()); setFactoryBeanName(original.getFactoryBeanName()); setDependsOn(original.getDependsOn()); setResourceDescription(original.getResourceDescription()); }