List of usage examples for org.springframework.beans.factory.config BeanDefinition getAttribute
@Nullable Object getAttribute(String name);
From source file:org.iff.infra.util.spring.script.ScriptFactoryPostProcessor.java
protected boolean resolveProxyTargetClass(BeanDefinition beanDefinition) { boolean proxyTargetClass = this.defaultProxyTargetClass; Object attributeValue = beanDefinition.getAttribute(PROXY_TARGET_CLASS_ATTRIBUTE); if (attributeValue instanceof Boolean) { proxyTargetClass = (Boolean) attributeValue; } else if (attributeValue instanceof String) { proxyTargetClass = Boolean.valueOf((String) attributeValue); } else if (attributeValue != null) { throw new BeanDefinitionStoreException( "Invalid proxy target class attribute [" + PROXY_TARGET_CLASS_ATTRIBUTE + "] with value '" + attributeValue + "': needs to be of type Boolean or String"); }/* w ww .j av a 2 s.co m*/ return proxyTargetClass; }
From source file:lodsve.core.condition.BeanTypeRegistry.java
private Class<?> getConfigurationClassFactoryBeanGeneric(ConfigurableListableBeanFactory beanFactory, BeanDefinition definition, String name) throws Exception { Method method = getFactoryMethod(beanFactory, definition); Class<?> generic = ResolvableType.forMethodReturnType(method).as(FactoryBean.class).resolveGeneric(); if ((generic == null || generic.equals(Object.class)) && definition.hasAttribute(FACTORY_BEAN_OBJECT_TYPE)) { generic = getTypeFromAttribute(definition.getAttribute(FACTORY_BEAN_OBJECT_TYPE)); }//ww w.j a v a 2 s. c om return generic; }
From source file:lodsve.core.condition.BeanTypeRegistry.java
private Class<?> getDirectFactoryBeanGeneric(ConfigurableListableBeanFactory beanFactory, BeanDefinition definition, String name) throws ClassNotFoundException, LinkageError { Class<?> factoryBeanClass = ClassUtils.forName(definition.getBeanClassName(), beanFactory.getBeanClassLoader()); Class<?> generic = ResolvableType.forClass(factoryBeanClass).as(FactoryBean.class).resolveGeneric(); if ((generic == null || generic.equals(Object.class)) && definition.hasAttribute(FACTORY_BEAN_OBJECT_TYPE)) { generic = getTypeFromAttribute(definition.getAttribute(FACTORY_BEAN_OBJECT_TYPE)); }/*w w w . j av a2 s . c o m*/ return generic; }
From source file:org.bigtester.ate.model.page.elementaction.SendKeysActionPostBeanProcessor.java
/** * {@inheritDoc}/*from w ww.j a va2s. c o m*/ */ @Override public void postProcessBeanFactory(@Nullable ConfigurableListableBeanFactory beanFactory) throws BeansException { if (beanFactory == null) throw new IllegalStateException("Spring Container initialization error"); // String[] homePageNames = // beanFactory.getBeanNamesForType(IStepInputData.class, true, false); String[] allSendKeysActions = beanFactory.getBeanNamesForType(SendKeysAction.class, true, false); for (int index = 0; index < allSendKeysActions.length; index++) { BeanDefinition sendKeyActDef = beanFactory.getBeanDefinition(allSendKeysActions[index]); String dataValue = ((RuntimeBeanReference) sendKeyActDef.getConstructorArgumentValues() .getGenericArgumentValue(RuntimeBeanReference.class).getValue()).getBeanName(); //.getAttribute(XsdElementConstants.ATTR_SENDKEYSACTION_DATAVALUE); if (null == dataValue) { throw new IllegalStateException("Spring Container sendKeyActionValue initialization error"); } else { try { beanFactory.getBeanDefinition(dataValue); } catch (NoSuchBeanDefinitionException NoBeanDef) { String idstr; BeanDefinitionBuilder definitionBuilder; if (StringUtils.isEmpty(dataValue)) { definitionBuilder = BeanDefinitionBuilder .genericBeanDefinition(RandomAlphaTextValueDataHolder.class); idstr = (String) sendKeyActDef.getAttribute("id") + "_SendKeysRandomAlphaTextDataValueBean_ID"; definitionBuilder.addConstructorArgValue(idstr); definitionBuilder.addConstructorArgValue(10); } else { definitionBuilder = BeanDefinitionBuilder .genericBeanDefinition(ManualAssignedValueDataHolder.class); definitionBuilder.addConstructorArgValue(EnumRunTimeDataType.TEXT); definitionBuilder.addConstructorArgValue(dataValue); idstr = (String) sendKeyActDef.getAttribute("id") + "_SendKeysDataValueBean_ID"; definitionBuilder.addConstructorArgValue(idstr); } getBdReg().registerBeanDefinition(idstr, definitionBuilder.getBeanDefinition()); sendKeyActDef.setAttribute(XsdElementConstants.ATTR_SENDKEYSACTION_DATAVALUE, idstr); sendKeyActDef.getConstructorArgumentValues().getGenericArgumentValue(RuntimeBeanReference.class) .setValue(new RuntimeBeanReference(idstr)); } } } }
From source file:com.helpinput.spring.BeanRegister.java
public static boolean removeBean(DefaultListableBeanFactory dlbf, BeanInfo beanInfo, String beanName) { BeanDefinition bd = null; if (!Utils.hasLength(beanName)) if (beanInfo != null) beanName = beanInfo.beanName; if (!Utils.hasLength(beanName)) return false; try {/*w w w. ja va 2s . c o m*/ bd = dlbf.getBeanDefinition(beanName); if (bd != null) { //?bean? relativePath?, ?? // BeanRegister.runOnUnregisger(beanName, dlbf); String scope = bd.getScope(); /** * bean?application,singletonbeansession?view? flash? * requestbean, * session,view,flash,requestbeanapplicationbean * application,singletonbean * scopebeanbeanbean */ if (application_scope.equals(scope)) dlbf.destroyScopedBean(beanName); else if (singleton_scope.equals(scope)) dlbf.destroySingleton(beanName); dlbf.removeBeanDefinition(beanName); if (beanInfo != null && beanInfo.beanClass != null && PropertyEditor.class.isAssignableFrom(beanInfo.beanClass)) { ContextHolder.refreshers.remover(beanName); } List<BeanRegistInterceptor> interceptors = ContextHolder.beanRegistIntercpterHolder.getList(); if (Utils.hasLength(interceptors)) { for (BeanRegistInterceptor beanRegistInterceptor : interceptors) { if (beanRegistInterceptor.afterRemove(beanInfo.beanClass, beanName, scope, dlbf)) break; } } logRegist(Info.Removed, (String) bd.getAttribute(relativePath), beanInfo.beanName, scope); return true; } } catch (NoSuchBeanDefinitionException e) { //? BeanDefinition,????beanInfo, return true; } return false; }
From source file:org.iff.infra.util.spring.script.ScriptFactoryPostProcessor.java
@Override public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) { // We only apply special treatment to ScriptFactory implementations here. if (!ScriptFactory.class.isAssignableFrom(beanClass)) { return null; }/* w w w. ja v a 2 s . c om*/ BeanDefinition bd = this.beanFactory.getMergedBeanDefinition(beanName); String scriptFactoryBeanName = SCRIPT_FACTORY_NAME_PREFIX + beanName; String scriptedObjectBeanName = SCRIPTED_OBJECT_NAME_PREFIX + beanName; prepareScriptBeans(bd, scriptFactoryBeanName, scriptedObjectBeanName); ScriptFactory scriptFactory = this.scriptBeanFactory.getBean(scriptFactoryBeanName, ScriptFactory.class); ScriptSource scriptSource = getScriptSource(scriptFactoryBeanName, scriptFactory.getScriptSourceLocator()); boolean isFactoryBean = false; try { Class<?> scriptedObjectType = scriptFactory.getScriptedObjectType(scriptSource); // Returned type may be null if the factory is unable to determine the type. if (scriptedObjectType != null) { isFactoryBean = FactoryBean.class.isAssignableFrom(scriptedObjectType); } } catch (Exception ex) { throw new BeanCreationException(beanName, "Could not determine scripted object type for " + scriptFactory, ex); } long refreshCheckDelay = resolveRefreshCheckDelay(bd); String language = (String) bd.getAttribute(LANGUAGE_ATTRIBUTE);//add by tylerchen if (refreshCheckDelay >= 0 || "groovy".equals(language)) { Class<?>[] interfaces = scriptFactory.getScriptInterfaces(); RefreshableScriptTargetSource ts = new RefreshableScriptTargetSource(this.scriptBeanFactory, scriptedObjectBeanName, scriptFactory, scriptSource, isFactoryBean); boolean proxyTargetClass = resolveProxyTargetClass(bd); //String language = (String) bd.getAttribute(LANGUAGE_ATTRIBUTE);//remove by tylerchen if (proxyTargetClass && (language == null || !language.equals("groovy"))) { throw new BeanDefinitionValidationException( "Cannot use proxyTargetClass=true with script beans where language is not 'groovy': '" + language + "'"); } //ts.setRefreshCheckDelay(refreshCheckDelay);//remove by tylerchen ts.setRefreshCheckDelay(-1);//add by tylerchen return createRefreshableProxy(ts, interfaces, proxyTargetClass); } if (isFactoryBean) { scriptedObjectBeanName = BeanFactory.FACTORY_BEAN_PREFIX + scriptedObjectBeanName; } return this.scriptBeanFactory.getBean(scriptedObjectBeanName); }
From source file:org.bigtester.ate.model.page.elementfind.ElementFinderIndexOfSameProcessor.java
/** * {@inheritDoc}/* ww w . j a va2s .co m*/ */ @Override public void postProcessBeanFactory(@Nullable ConfigurableListableBeanFactory beanFactory) throws BeansException { if (beanFactory == null) throw new IllegalStateException("Spring Container initialization error"); // String[] homePageNames = // beanFactory.getBeanNamesForType(IStepInputData.class, true, false); String[] elementFinders = beanFactory.getBeanNamesForType(AbstractElementFind.class, true, false); for (int index = 0; index < elementFinders.length; index++) { BeanDefinition elementFinderDef = beanFactory.getBeanDefinition(elementFinders[index]); Object indexOfSameElementsRef = null; // NOPMD if (elementFinderDef.getPropertyValues() .getPropertyValue(XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS) != null) { indexOfSameElementsRef = elementFinderDef.getPropertyValues() .getPropertyValue(XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS) .getValue(); } if (indexOfSameElementsRef == null) continue; String dataValue = ((RuntimeBeanReference) indexOfSameElementsRef).getBeanName(); if (null == dataValue) { throw new IllegalStateException("Spring Container sendKeyActionValue initialization error"); } else { try { beanFactory.getBeanDefinition(dataValue); } catch (NoSuchBeanDefinitionException NoBeanDef) { String idstr; int intDataValue; BeanDefinitionBuilder definitionBuilder; if (StringUtils.isEmpty(dataValue)) {// assign 0 intDataValue = 0; } else { try { intDataValue = Integer.parseInt(dataValue);//NOPMD } catch (NumberFormatException nonNumeric) { intDataValue = 0; } } definitionBuilder = BeanDefinitionBuilder .genericBeanDefinition(AutoIncrementalDataHolder.class); definitionBuilder.addConstructorArgValue(intDataValue); definitionBuilder.addConstructorArgValue(1); idstr = (String) elementFinderDef.getAttribute("id") + "_elementfinderIndexOfSameElements_ID"; getBdReg().registerBeanDefinition(idstr, definitionBuilder.getBeanDefinition()); elementFinderDef.getPropertyValues() .removePropertyValue(XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS); elementFinderDef.getPropertyValues().addPropertyValue( XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS, new RuntimeBeanReference(idstr)); } } } }
From source file:org.eclipse.gemini.blueprint.blueprint.container.support.internal.config.CycleOrderingProcessor.java
private void addSyntheticDependsOn(BeanDefinition definition, String beanName) { if (StringUtils.hasText(beanName)) { String[] dependsOn = definition.getDependsOn(); if (dependsOn != null && dependsOn.length > 0) { for (String dependOn : dependsOn) { if (beanName.equals(dependOn)) { return; }/*from w ww . j a va 2s. c o m*/ } } // add depends on dependsOn = (String[]) ObjectUtils.addObjectToArray(dependsOn, beanName); definition.setDependsOn(dependsOn); Collection<String> markers = (Collection<String>) definition.getAttribute(SYNTHETIC_DEPENDS_ON); if (markers == null) { markers = new ArrayList<String>(2); definition.setAttribute(SYNTHETIC_DEPENDS_ON, markers); } markers.add(beanName); } }
From source file:org.metaeffekt.dcc.commons.spring.xml.CapabilityInheritanceBeanDefinitionPostProcessor.java
@SuppressWarnings("unchecked") private List<AttributeKey> processInheritance(BeanDefinitionRegistry registry, String definitionName) { BeanDefinition definition = registry.getBeanDefinition(definitionName); List<AttributeKey> inheritedKeys = null; if (definition != null) { // explicitly grab a reference to the List from the BeanDefinition inheritedKeys = (List<AttributeKey>) definition.getPropertyValues() .getPropertyValue(DCCConfigurationBeanDefinitionParser.PROPERTY_CAPABILITY_DEF_ATTRIBUTE_KEYS) .getValue();//from w w w . java 2s.c om List<CapabilityDefinitionReference> ancestorsAttributeReference = (List<CapabilityDefinitionReference>) definition .getAttribute(DCCConfigurationBeanDefinitionParser.PROPERTY_CAPABILITY_DEF_ANCESTORS); if (!ancestorsAttributeReference.isEmpty()) { List<CapabilityDefinitionReference> ancestors = new ArrayList<>(); ancestors.addAll(ancestorsAttributeReference); for (CapabilityDefinitionReference ancestor : ancestors) { // recursive call to get additional attribute keys String uniqueDefinitionRefId = createUniqueAncestorReferenceId(definitionName, ancestor); if (!definitionRefsInProgress.contains(uniqueDefinitionRefId)) { definitionRefsInProgress.add(uniqueDefinitionRefId); List<AttributeKey> ancestorsAttributeKeys = processInheritance(registry, DCCConfigurationBeanDefinitionParser .createCapabilityDefBeanName(ancestor.getReferencedCapabilityDefId())); for (AttributeKey ancestorAttributeKey : ancestorsAttributeKeys) { AttributeKey localAttributeKey = prefixAttributeKeyIfAppropriate(ancestorAttributeKey, ancestor.getPrefix()); if (inheritedKeys.contains(localAttributeKey)) { throw new BeanDefinitionValidationException( "Duplicate attribute key [" + localAttributeKey + "] detected while processing CapabilityDefinitionReference [" + uniqueDefinitionRefId + "]."); } // add to attributeKeys - List is a reference to BeanDefinition inheritedKeys.add(localAttributeKey); } definitionRefsInProgress.remove(uniqueDefinitionRefId); } else { throw new BeanDefinitionValidationException("Cyclic inheritance definition detected. " + "DefinitionRefsInProgress (BeanDefinitionName:ReferencePrefix#ReferenceCapabilityId) " + "[" + definitionRefsInProgress + "]"); } ancestorsAttributeReference.remove(ancestor); } } } return (inheritedKeys != null) ? inheritedKeys : Collections.<AttributeKey>emptyList(); }
From source file:org.mule.config.spring.MuleHierarchicalBeanDefinitionParserDelegate.java
public static boolean testFlag(BeanDefinition bean, String flag) { return null != bean && bean.hasAttribute(flag) && bean.getAttribute(flag) instanceof Boolean && ((Boolean) bean.getAttribute(flag)).booleanValue(); }