Java Examples for org.springframework.beans.factory.config.BeanDefinitionHolder
The following java examples will help you to understand the usage of org.springframework.beans.factory.config.BeanDefinitionHolder. These source code samples are taken from different open source projects.
Example 1
Project: infinispan-master File: InfinispanNamespaceUtils.java View source code |
public static BeanComponentDefinition parseInnerBeanDefinition(Element element, ParserContext parserContext) {
List<Element> childElements = DomUtils.getChildElementsByTagName(element, "bean");
BeanComponentDefinition innerComponentDefinition = null;
if (childElements != null && childElements.size() == 1) {
Element beanElement = childElements.get(0);
if (!"http://www.springframework.org/schema/beans".equals(beanElement.getNamespaceURI())) {
throw new IllegalStateException("Illegal inner child element");
}
BeanDefinitionParserDelegate delegate = parserContext.getDelegate();
BeanDefinitionHolder beanDefinitionHolder = delegate.parseBeanDefinitionElement(beanElement);
beanDefinitionHolder = delegate.decorateBeanDefinitionIfRequired(beanElement, beanDefinitionHolder);
BeanDefinition beanDefinition = beanDefinitionHolder.getBeanDefinition();
innerComponentDefinition = new BeanComponentDefinition(beanDefinition, beanDefinitionHolder.getBeanName());
}
return innerComponentDefinition;
}
Example 2
Project: muon-java-master File: MuonRepositoryRegistrar.java View source code |
@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
Set<String> basePackages = getBasePackages(importingClassMetadata);
ClassPathScanningCandidateComponentProvider scanner = getScanner();
scanner.addIncludeFilter(new AnnotationTypeFilter(MuonRepository.class));
for (String basePackage : basePackages) {
Set<BeanDefinition> candidateComponents = scanner.findCandidateComponents(basePackage);
for (BeanDefinition candidateComponent : candidateComponents) {
if (candidateComponent instanceof AnnotatedBeanDefinition) {
AnnotatedBeanDefinition beanDefinition = (AnnotatedBeanDefinition) candidateComponent;
AnnotationMetadata annotationMetadata = beanDefinition.getMetadata();
Assert.isTrue(annotationMetadata.isInterface(), "@FeignClient can only be specified on an interface");
BeanDefinitionHolder holder = createBeanDefinition(annotationMetadata);
BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry);
}
}
}
}
Example 3
Project: zookeeper-spring-master File: CuratorFrameworkBeanDefinitionParser.java View source code |
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
final BeanDefinitionBuilder beanDefBuilder = BeanDefinitionBuilder.rootBeanDefinition(CuratorFrameworkFactoryBean.class);
beanDefBuilder.setRole(ROLE_APPLICATION);
beanDefBuilder.getRawBeanDefinition().setSource(parserContext.extractSource(element));
beanDefBuilder.addPropertyValue("connectString", element.getAttribute("connect-string"));
Element retryPolicyElement = DomUtils.getChildElementByTagName(element, "retry-policy");
if (retryPolicyElement != null) {
Element retryPolicyBeanElement = DomUtils.getChildElements(retryPolicyElement).get(0);
BeanDefinitionHolder retryPolicy = parserContext.getDelegate().parseBeanDefinitionElement(retryPolicyBeanElement, beanDefBuilder.getBeanDefinition());
beanDefBuilder.addPropertyValue("retryPolicy", retryPolicy);
}
Node namespace = element.getAttributeNode("namespace");
if (namespace != null) {
beanDefBuilder.addPropertyValue("namespace", namespace.getNodeValue());
}
return beanDefBuilder.getBeanDefinition();
}
Example 4
Project: automation-test-engine-master File: RunTimeDataHolderBeanDefinitionParser.java View source code |
/**
* {@inheritDoc}
*/
@Override
@Nullable
protected AbstractBeanDefinition parseInternal(@Nullable Element element, @Nullable ParserContext parserContext) {
// Here we parse the Spring elements such as < property>
if (parserContext == null || element == null)
throw GlobalUtils.createNotInitializedException("element and parserContext");
// Here we parse the Spring elements such as < property>
String dataHolderType = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_DATAHOLDERTYPE).toUpperCase();
if (null == dataHolderType || !StringUtils.hasText(dataHolderType)) {
throw GlobalUtils.createNotInitializedException("dataHolderType attribute in xml test case");
}
RumtimeDataHolderType enumDataHolderType = RumtimeDataHolderType.valueOf(dataHolderType);
BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(element);
BeanDefinition bDef = holder.getBeanDefinition();
switch(enumDataHolderType) {
case PAGESOURCEPARSED:
bDef.setBeanClassName(PageParsedDataHolder.class.getName());
break;
case MANUALASSIGNED:
bDef.setBeanClassName(ManualAssignedValueDataHolder.class.getName());
break;
case CASESERVICEPARSED:
bDef.setBeanClassName(CaseServiceParsedDataHolder.class.getName());
break;
case STEPSERVICEPARSED:
bDef.setBeanClassName(StepServiceParsedDataHolder.class.getName());
break;
case RANDOMALPHATEXT:
bDef.setBeanClassName(RandomAlphaTextValueDataHolder.class.getName());
break;
case RANDOMNUMBERS:
bDef.setBeanClassName(RandomNumericValueDataHolder.class.getName());
break;
case RANDOMTEXTNUMBERS:
bDef.setBeanClassName(RandomAlphaNumericValueDataHolder.class.getName());
break;
case RANDOMEMAIL:
bDef.setBeanClassName(RandomEmailDataHolder.class.getName());
break;
default:
break;
}
String dataType = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_DATATYPE).toUpperCase();
if (null != dataType && StringUtils.hasText(dataType)) {
EnumRunTimeDataType enumDataType = EnumRunTimeDataType.valueOf(dataType);
bDef.getConstructorArgumentValues().addGenericArgumentValue(enumDataType);
}
String dataValue = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_DATAVALUE);
if (StringUtils.hasText(dataValue)) {
bDef.getConstructorArgumentValues().addGenericArgumentValue(dataValue);
}
String leftBoundry = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_LEFTBOUNDRY);
if (StringUtils.hasText(leftBoundry)) {
bDef.getConstructorArgumentValues().addGenericArgumentValue(leftBoundry);
}
String rightBoundry = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_RIGHTBOUNDRY);
if (StringUtils.hasText(rightBoundry)) {
bDef.getConstructorArgumentValues().addGenericArgumentValue(rightBoundry);
}
String page = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_PAGE);
if (StringUtils.hasText(page)) {
bDef.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference(page));
}
String beanID = element.getAttribute("id");
bDef.getConstructorArgumentValues().addGenericArgumentValue(beanID);
String mappedBeanID = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_SUBCASEMAPPEDDATAHOLDERID);
if (StringUtils.hasText(mappedBeanID)) {
bDef.getConstructorArgumentValues().addGenericArgumentValue(mappedBeanID);
}
String indexOfSameTypeDataOnPage = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_INDEXOFSAMETYPEDATAONPAGE);
if (StringUtils.hasText(indexOfSameTypeDataOnPage)) {
int index = Integer.parseInt(indexOfSameTypeDataOnPage);
bDef.getConstructorArgumentValues().addGenericArgumentValue(index);
}
String randomTextLength = element.getAttribute(XsdElementConstants.ATTR_RUNTIMEDATAHOLDER_RANDOMINPUTLENGTH);
if (StringUtils.hasText(randomTextLength)) {
int length = Integer.parseInt(randomTextLength);
bDef.getConstructorArgumentValues().addGenericArgumentValue(length);
}
parserContext.getRegistry().registerBeanDefinition(element.getAttribute("id"), bDef);
return (AbstractBeanDefinition) bDef;
}
Example 5
Project: citrus-master File: SpringExtUtil.java View source code |
/** * 从element创建指定configuration pointçš„bean。如果elementä¸?属于该configuration * pointçš„å??å—空间,则返回<code>null</code>。 */ public static BeanDefinitionHolder parseConfigurationPointBean(Element element, ConfigurationPoint cp, ParserContext parserContext, BeanDefinitionBuilder containingBeanBuilder) { assertNotNull(cp, "configurationPoint"); BeanDefinitionParserDelegate delegate = parserContext.getDelegate(); boolean isInnerBean = containingBeanBuilder != null; BeanDefinition containingBean = isInnerBean ? containingBeanBuilder.getRawBeanDefinition() : null; ElementSelector customSelector = ns(cp.getNamespaceUri()); // 解æž?custom element。 if (customSelector.accept(element)) { AbstractBeanDefinition bean = (AbstractBeanDefinition) delegate.parseCustomElement(element, containingBean); String beanName = trimToNull(element.getAttribute("id")); if (beanName == null) { beanName = BeanDefinitionReaderUtils.generateBeanName(bean, parserContext.getRegistry(), isInnerBean); } return new BeanDefinitionHolder(bean, beanName); } return null; }
Example 6
Project: JCL-master File: JclBeanDefinitionDecorator.java View source code |
public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder holder, ParserContext parserContext) { String jclRef = node.getAttributes().getNamedItem(JCL_REF).getNodeValue(); GenericBeanDefinition bd = new GenericBeanDefinition(); bd.setFactoryBeanName(JCL_FACTORY); bd.setFactoryMethodName(JCL_FACTORY_METHOD); bd.setConstructorArgumentValues(holder.getBeanDefinition().getConstructorArgumentValues()); bd.setPropertyValues(holder.getBeanDefinition().getPropertyValues()); bd.getConstructorArgumentValues().addIndexedArgumentValue(0, new ConstructorArgumentValues.ValueHolder(parserContext.getRegistry().getBeanDefinition(jclRef))); bd.getConstructorArgumentValues().addIndexedArgumentValue(1, new ConstructorArgumentValues.ValueHolder(holder.getBeanDefinition().getBeanClassName())); BeanDefinitionHolder newHolder = new BeanDefinitionHolder(bd, holder.getBeanName()); createDependencyOnJcl(node, newHolder, parserContext); return newHolder; }
Example 7
Project: jdal-master File: TableBeanDefinitionParser.java View source code |
/** * {@inheritDoc} */ @SuppressWarnings("rawtypes") public BeanDefinition parse(Element element, ParserContext parserContext) { // Defaults String entity = null; if (element.hasAttribute(ENTITY)) entity = element.getAttribute(ENTITY); String name = StringUtils.uncapitalize(StringUtils.substringAfterLast(entity, ".")); if (element.hasAttribute(ID)) name = element.getAttribute(ID); parserContext.pushContainingComponent(new CompositeComponentDefinition(name, parserContext.extractSource(element))); // Bean names String pageableTableBeanName = name + PAGEABLE_TABLE_SUFFIX; String tableBeanName = name + TABLE_SUFFIX; String dataSource = name + SERVICE_SUFFIX; String paginator = PAGINATOR_VIEW; String editor = name + EDITOR_SUFFIX; String actions = DefaultsBeanDefinitionParser.DEFAULT_TABLE_ACTIONS; String guiFactory = DefaultsBeanDefinitionParser.DEFAULT_GUI_FACTORY; String scope = BeanDefinition.SCOPE_PROTOTYPE; String pageableTableClass = DEFAULT_PAGEABLE_TABLE_CLASS; String tableClass = DEFAULT_TABLE_CLASS; if (element.hasAttribute(DATA_SOURCE)) dataSource = element.getAttribute(DATA_SOURCE); if (element.hasAttribute(PAGINATOR)) paginator = element.getAttribute(PAGINATOR); if (element.hasAttribute(ACTIONS)) actions = element.getAttribute(ACTIONS); if (element.hasAttribute(GUI_FACTORY)) guiFactory = element.getAttribute(GUI_FACTORY); if (element.hasAttribute(EDITOR)) editor = element.getAttribute(EDITOR); if (element.hasAttribute(SCOPE)) scope = element.getAttribute(SCOPE); if (element.hasAttribute(PAGEABLE_TABLE_CLASS)) pageableTableClass = element.getAttribute(PAGEABLE_TABLE_CLASS); if (element.hasAttribute(TABLE_CLASS)) tableClass = element.getAttribute(TABLE_CLASS); // create PageableTable BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(pageableTableClass); bdb.setScope(scope); bdb.addPropertyReference(DATA_SOURCE, dataSource); bdb.addPropertyReference(PAGINATOR_VIEW, paginator); bdb.addPropertyValue(NAME, pageableTableBeanName); bdb.addPropertyReference(TABLE, tableBeanName); bdb.addPropertyReference(GUI_FACTORY, guiFactory); bdb.addPropertyValue(EDITOR_NAME, editor); bdb.addPropertyValue(ENTITY_CLASS, entity); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, TABLE_SERVICE); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, FILTER); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, MESSAGE_SOURCE); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, FILTER_FORM); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, SORT_PROPERTY); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, ORDER); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, PAGE_SIZE); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, NATIVE_BUTTONS); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, PROPAGATE_SERVICE); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, CONTAINER_CLASS); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, DIALOG); if (!element.hasAttribute(USE_ACTIONS) || "true".equals(element.getAttribute(USE_ACTIONS))) bdb.addPropertyReference(ACTIONS, actions); parserContext.getDelegate().parseBeanDefinitionAttributes(element, pageableTableBeanName, null, bdb.getBeanDefinition()); BeanDefinitionHolder holder = new BeanDefinitionHolder(bdb.getBeanDefinition(), pageableTableBeanName); // Test Decorators like aop:scoped-proxy NodeList childNodes = element.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node n = childNodes.item(i); if (Node.ELEMENT_NODE != n.getNodeType() || COLUMNS.equals(n.getLocalName())) continue; NamespaceHandler handler = parserContext.getReaderContext().getNamespaceHandlerResolver().resolve(n.getNamespaceURI()); if (handler != null) { holder = handler.decorate(n, holder, parserContext); } } parserContext.registerBeanComponent(new BeanComponentDefinition(holder)); // create ConfigurableTable bdb = BeanDefinitionBuilder.genericBeanDefinition(tableClass); bdb.setScope(BeanDefinition.SCOPE_PROTOTYPE); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, MULTISELECT); if (element.hasAttribute(FIELD_FACTORY)) bdb.addPropertyReference(FIELD_FACTORY_PROPERTY, element.getAttribute(FIELD_FACTORY)); if (element.hasAttribute(SELECTABLE)) { bdb.addPropertyValue(SELECTABLE, element.getAttribute(SELECTABLE)); } else { // set selectable by default bdb.addPropertyValue(SELECTABLE, true); } // parse columns NodeList nl = element.getElementsByTagNameNS(element.getNamespaceURI(), COLUMNS); if (nl.getLength() > 0) { List columns = parserContext.getDelegate().parseListElement((Element) nl.item(0), bdb.getRawBeanDefinition()); bdb.addPropertyValue(COLUMNS, columns); } registerBeanDefinition(element, parserContext, tableBeanName, bdb); parserContext.popAndRegisterContainingComponent(); return null; }
Example 8
Project: Katari-master File: ConstructorArgumentsBeanNameAutoProxyCreator.java View source code |
/** Extracts the actual value from the given {@link ValueHolder}, resolving
* bean references through the bean factory.
*
* @param holder The holder to resolve
*
* @return The actual value of the holder
*/
protected Object getActualValue(final ValueHolder holder) {
Validate.notNull(holder, "The value holder cannot be null.");
log.trace("Start getActualValue");
Object value = holder.getValue();
if (value instanceof BeanDefinitionHolder) {
// Constructor argument is an inner bean
throw new IllegalArgumentException("Inner bean definitions are not supported");
}
if (value instanceof BeanReference) {
BeanReference ref = (BeanReference) value;
if (log.isDebugEnabled()) {
log.debug("Value is a reference to " + ref.getBeanName() + ", resolving reference");
}
value = beanFactory.getBean(ref.getBeanName());
} else if (value instanceof TypedStringValue) {
TypedStringValue typedStringValue = (TypedStringValue) value;
value = typedStringValue.getValue();
}
if (log.isTraceEnabled()) {
log.trace("Finishing getActualValue, actual value is " + value);
}
return value;
}
Example 9
Project: riot-master File: AbstractGenericBeanDefinitionParser.java View source code |
public final BeanDefinition parse(Element element, ParserContext parserContext) { if (!enabled) { throw new FatalBeanException("Support for " + element.getTagName() + " has been disabled. Please add the required jar files " + "to your classpath."); } AbstractBeanDefinition definition = parseInternal(element, parserContext); if (!parserContext.isNested()) { try { String id = resolveId(element, definition, parserContext); if (!StringUtils.hasText(id)) { parserContext.getReaderContext().error("Id is required for element '" + element.getLocalName() + "' when used as a top-level tag", element); } String[] aliases = resolveAliases(element, definition, parserContext); BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, id, aliases); if (decorator != null) { holder = decorator.decorate(element, holder, parserContext); } registerBeanDefinition(holder, parserContext.getRegistry()); if (shouldFireEvents()) { BeanComponentDefinition componentDefinition = new BeanComponentDefinition(holder); postProcessComponentDefinition(componentDefinition); parserContext.registerComponent(componentDefinition); } } catch (BeanDefinitionStoreException ex) { parserContext.getReaderContext().error(ex.getMessage(), element); return null; } } else if (decorator != null) { BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, ""); decorator.decorate(element, holder, parserContext); } return definition; }
Example 10
Project: spring-cloud-aws-master File: AnnotationDrivenQueueListenerBeanDefinitionParser.java View source code |
private static ManagedList<BeanDefinition> extractBeanSubElements(Element parentElement, ParserContext parserContext) {
ManagedList<BeanDefinition> list = new ManagedList<>();
list.setSource(parserContext.extractSource(parentElement));
for (Element beanElement : DomUtils.getChildElementsByTagName(parentElement, "bean")) {
BeanDefinitionHolder beanDef = parserContext.getDelegate().parseBeanDefinitionElement(beanElement);
beanDef = parserContext.getDelegate().decorateBeanDefinitionIfRequired(beanElement, beanDef);
list.add(beanDef.getBeanDefinition());
}
return list;
}
Example 11
Project: spring-cmdline-master File: CommandLineBeanDefinitionReader.java View source code |
public <T> void parse(Class<T> beanClass, String[] args) { OptionParser parser = new OptionParser(); parser.acceptsAll(Arrays.asList("h", "help"), "Usage information"); CommandLineMetaData metaData = new CommandLineMetaData(beanClass); metaData.register(parser); OptionSet optionSet; try { optionSet = parser.parse(args); if (optionSet.has("help")) { // triggers usage throw new UsageException(parser, metaData, null); } CommandLineBeanDefinition beanDef = new CommandLineBeanDefinition(beanClass, metaData, optionSet); String beanName = beanNameGenerator.generateBeanName(beanDef, this.registry); BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(beanDef, beanName); BeanDefinitionReaderUtils.registerBeanDefinition(definitionHolder, this.registry); } catch (OptionException e) { throw new UsageException(parser, metaData, e); } catch (OperandException e) { throw new UsageException(parser, metaData, e); } }
Example 12
Project: spring-framework-2.5.x-master File: BeanDefinitionParserDelegate.java View source code |
/** * Parses the supplied <code><bean></code> element. May return <code>null</code> * if there were errors during parse. Errors are reported to the * {@link org.springframework.beans.factory.parsing.ProblemReporter}. */ public BeanDefinitionHolder parseBeanDefinitionElement(Element ele, BeanDefinition containingBean) { String id = ele.getAttribute(ID_ATTRIBUTE); String nameAttr = ele.getAttribute(NAME_ATTRIBUTE); List aliases = new ArrayList(); if (StringUtils.hasLength(nameAttr)) { String[] nameArr = StringUtils.tokenizeToStringArray(nameAttr, BEAN_NAME_DELIMITERS); aliases.addAll(Arrays.asList(nameArr)); } String beanName = id; if (!StringUtils.hasText(beanName) && !aliases.isEmpty()) { beanName = (String) aliases.remove(0); if (logger.isDebugEnabled()) { logger.debug("No XML 'id' specified - using '" + beanName + "' as bean name and " + aliases + " as aliases"); } } if (containingBean == null) { checkNameUniqueness(beanName, aliases, ele); } AbstractBeanDefinition beanDefinition = parseBeanDefinitionElement(ele, beanName, containingBean); if (beanDefinition != null) { if (!StringUtils.hasText(beanName)) { try { if (containingBean != null) { beanName = BeanDefinitionReaderUtils.generateBeanName(beanDefinition, this.readerContext.getRegistry(), true); } else { beanName = this.readerContext.generateBeanName(beanDefinition); // Register an alias for the plain bean class name, if still possible, // if the generator returned the class name plus a suffix. // This is expected for Spring 1.2/2.0 backwards compatibility. String beanClassName = beanDefinition.getBeanClassName(); if (beanClassName != null && beanName.startsWith(beanClassName) && beanName.length() > beanClassName.length() && !this.readerContext.getRegistry().isBeanNameInUse(beanClassName)) { aliases.add(beanClassName); } } if (logger.isDebugEnabled()) { logger.debug("Neither XML 'id' nor 'name' specified - " + "using generated bean name [" + beanName + "]"); } } catch (Exception ex) { error(ex.getMessage(), ele); return null; } } String[] aliasesArray = StringUtils.toStringArray(aliases); return new BeanDefinitionHolder(beanDefinition, beanName, aliasesArray); } return null; }
Example 13
Project: spring-framework-master File: BeanDefinitionParserDelegate.java View source code |
/** * Parses the supplied {@code <bean>} element. May return {@code null} * if there were errors during parse. Errors are reported to the * {@link org.springframework.beans.factory.parsing.ProblemReporter}. */ public BeanDefinitionHolder parseBeanDefinitionElement(Element ele, BeanDefinition containingBean) { String id = ele.getAttribute(ID_ATTRIBUTE); String nameAttr = ele.getAttribute(NAME_ATTRIBUTE); List<String> aliases = new ArrayList<>(); if (StringUtils.hasLength(nameAttr)) { String[] nameArr = StringUtils.tokenizeToStringArray(nameAttr, MULTI_VALUE_ATTRIBUTE_DELIMITERS); aliases.addAll(Arrays.asList(nameArr)); } String beanName = id; if (!StringUtils.hasText(beanName) && !aliases.isEmpty()) { beanName = aliases.remove(0); if (logger.isDebugEnabled()) { logger.debug("No XML 'id' specified - using '" + beanName + "' as bean name and " + aliases + " as aliases"); } } if (containingBean == null) { checkNameUniqueness(beanName, aliases, ele); } AbstractBeanDefinition beanDefinition = parseBeanDefinitionElement(ele, beanName, containingBean); if (beanDefinition != null) { if (!StringUtils.hasText(beanName)) { try { if (containingBean != null) { beanName = BeanDefinitionReaderUtils.generateBeanName(beanDefinition, this.readerContext.getRegistry(), true); } else { beanName = this.readerContext.generateBeanName(beanDefinition); // Register an alias for the plain bean class name, if still possible, // if the generator returned the class name plus a suffix. // This is expected for Spring 1.2/2.0 backwards compatibility. String beanClassName = beanDefinition.getBeanClassName(); if (beanClassName != null && beanName.startsWith(beanClassName) && beanName.length() > beanClassName.length() && !this.readerContext.getRegistry().isBeanNameInUse(beanClassName)) { aliases.add(beanClassName); } } if (logger.isDebugEnabled()) { logger.debug("Neither XML 'id' nor 'name' specified - " + "using generated bean name [" + beanName + "]"); } } catch (Exception ex) { error(ex.getMessage(), ele); return null; } } String[] aliasesArray = StringUtils.toStringArray(aliases); return new BeanDefinitionHolder(beanDefinition, beanName, aliasesArray); } return null; }
Example 14
Project: spring-js-master File: QualifierAnnotationAutowireContextTests.java View source code |
@Test
public void testAutowiredMethodParameterWithStaticallyQualifiedCandidate() {
GenericApplicationContext context = new GenericApplicationContext();
ConstructorArgumentValues cavs = new ConstructorArgumentValues();
cavs.addGenericArgumentValue(JUERGEN);
RootBeanDefinition person = new RootBeanDefinition(QualifiedPerson.class, cavs, null);
context.registerBeanDefinition(JUERGEN, ScopedProxyUtils.createScopedProxy(new BeanDefinitionHolder(person, JUERGEN), context, true).getBeanDefinition());
context.registerBeanDefinition("autowired", new RootBeanDefinition(QualifiedMethodParameterTestBean.class));
AnnotationConfigUtils.registerAnnotationConfigProcessors(context);
context.refresh();
QualifiedMethodParameterTestBean bean = (QualifiedMethodParameterTestBean) context.getBean("autowired");
assertEquals(JUERGEN, bean.getPerson().getName());
}
Example 15
Project: droolsjbpm-integration-master File: KBaseDefinitionParser.java View source code |
@SuppressWarnings("unchecked") @Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(KBaseFactoryBean.class); String id = element.getAttribute(ATTRIBUTE_ID); emptyAttributeCheck(element.getLocalName(), ATTRIBUTE_ID, id); factory.addPropertyValue("kBaseName", id); factory.addPropertyValue("id", id); factory.addPropertyValue("packages", element.getAttribute(ATTRIBUTE_PACKAGES)); factory.addPropertyValue("includes", element.getAttribute(ATTRIBUTE_INCLUDES)); factory.addPropertyValue("eventProcessingMode", element.getAttribute(ATTRIBUTE_EVENT_MODE)); factory.addPropertyValue("equalsBehavior", element.getAttribute(ATTRIBUTE_EQUALS)); factory.addPropertyValue("declarativeAgenda", element.getAttribute(ATTRIBUTE_DECLARATIVE_AGENDA)); factory.addPropertyValue("scope", element.getAttribute(ATTRIBUTE_SCOPE)); factory.addPropertyValue("def", element.getAttribute(ATTRIBUTE_DEFAULT)); element.setAttribute("name", id); List<Element> ksessionElements = DomUtils.getChildElementsByTagName(element, "ksession"); if (ksessionElements != null && !ksessionElements.isEmpty()) { for (Element kbaseElement : ksessionElements) { BeanDefinitionHolder obj = (BeanDefinitionHolder) parserContext.getDelegate().parsePropertySubElement(kbaseElement, null); obj.getBeanDefinition().getPropertyValues().addPropertyValue("kBaseName", id); obj.getBeanDefinition().getPropertyValues().addPropertyValue("kBase", new RuntimeBeanReference(id)); } } return factory.getBeanDefinition(); }
Example 16
Project: easyooo-framework-master File: ZookeeperUnifiedConfigurer.java View source code |
@Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { List<String> nodes = null; try { nodes = getChildren(this.configPath); List<BeanDefinitionHolder> bdHolder = new ArrayList<>(); for (String node : nodes) { List<BeanDefinitionHolder> tmp = publishNode(node); if (tmp != null) { bdHolder.addAll(tmp); } } for (BeanDefinitionHolder definitionHolder : bdHolder) { registerBeanDefinition(definitionHolder, registry); } if (logger.isDebugEnabled()) { StringBuffer sb = new StringBuffer("["); int counter = 1; for (BeanDefinitionHolder dh : bdHolder) { sb.append(dh.getBeanName()); if (counter++ != bdHolder.size()) { sb.append(","); } } sb.append("] registered into spring's container."); logger.debug(sb.toString()); } } catch (UnifiedConfigException e) { throw new BeanCreationException("Failed to create bean", e); } }
Example 17
Project: ff-master File: FF4JPlaceHolderBeanDefinitionParser.java View source code |
/** {@inheritDoc} */ public final BeanDefinition parse(Element element, ParserContext parserContext) { logger.debug("Initialization from <ff4j:" + TAG_PLACEHOLDER + "> TAG"); BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(); builder.getRawBeanDefinition().setBeanClass(FF4jPropertiesPlaceHolderConfigurer.class); builder.getRawBeanDefinition().setSource(parserContext.extractSource(element)); // Reference to FF4J bean RuntimeBeanReference refFF4j = new RuntimeBeanReference("ff4j"); builder.getBeanDefinition().getPropertyValues().addPropertyValue("id", BEANID_PLACEHOLDER_CONF); builder.getBeanDefinition().getPropertyValues().addPropertyValue("ff4j", refFF4j); builder.getBeanDefinition().getPropertyValues().addPropertyValue("order", 2); AbstractBeanDefinition def = builder.getBeanDefinition(); if (def != null && !parserContext.isNested()) { BeanDefinitionHolder holder = new BeanDefinitionHolder(def, BEANID_PLACEHOLDER, new String[0]); BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry()); } return def; }
Example 18
Project: ff4j-master File: FF4JPlaceHolderBeanDefinitionParser.java View source code |
/** {@inheritDoc} */ public final BeanDefinition parse(Element element, ParserContext parserContext) { logger.debug("Initialization from <ff4j:" + TAG_PLACEHOLDER + "> TAG"); BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(); builder.getRawBeanDefinition().setBeanClass(FF4jPropertiesPlaceHolderConfigurer.class); builder.getRawBeanDefinition().setSource(parserContext.extractSource(element)); // Reference to FF4J bean RuntimeBeanReference refFF4j = new RuntimeBeanReference("ff4j"); builder.getBeanDefinition().getPropertyValues().addPropertyValue("id", BEANID_PLACEHOLDER_CONF); builder.getBeanDefinition().getPropertyValues().addPropertyValue("ff4j", refFF4j); builder.getBeanDefinition().getPropertyValues().addPropertyValue("order", 2); AbstractBeanDefinition def = builder.getBeanDefinition(); if (def != null && !parserContext.isNested()) { BeanDefinitionHolder holder = new BeanDefinitionHolder(def, BEANID_PLACEHOLDER, new String[0]); BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry()); } return def; }
Example 19
Project: FiWare-Template-Handler-master File: StateHandlerAnnotationBeanFactoryPostProcessor.java View source code |
private void configureDefaultActivitiRegistry(String registryBeanName, BeanDefinitionRegistry registry) { if (!beanAlreadyConfigured(registry, registryBeanName, ActivitiStateHandlerRegistry.class)) { String registryName = ActivitiStateHandlerRegistry.class.getName(); log.info("registering a " + registryName + " instance under bean name " + ActivitiContextUtils.ACTIVITI_REGISTRY_BEAN_NAME + "."); RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(); rootBeanDefinition.setBeanClassName(registryName); rootBeanDefinition.getPropertyValues().addPropertyValue("processEngine", this.processEngine); BeanDefinitionHolder holder = new BeanDefinitionHolder(rootBeanDefinition, registryBeanName); BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); } }
Example 20
Project: gemini.blueprint-master File: BlueprintParser.java View source code |
public BeanDefinitionHolder parseAsHolder(Element componentElement, ParserContext parserContext) { // save parser context this.parserContext = parserContext; this.defaults = new BlueprintDefaultsDefinition(componentElement.getOwnerDocument(), parserContext); // let Spring do its standard parsing BeanDefinitionHolder bdHolder = parseComponentDefinitionElement(componentElement, null); BeanDefinition bd = bdHolder.getBeanDefinition(); if (bd != null) { bd.setAttribute(ParsingUtils.BLUEPRINT_MARKER_NAME, Boolean.TRUE); } return bdHolder; }
Example 21
Project: javaconfig-ftw-master File: ActivitiAnnotationDrivenBeanDefinitionParser.java View source code |
@Deprecated private void registerStateHandlerAnnotationBeanFactoryPostProcessor(Element element, ParserContext context) { Class clz = StateHandlerAnnotationBeanFactoryPostProcessor.class; BeanDefinitionBuilder postProcessorBuilder = BeanDefinitionBuilder.genericBeanDefinition(clz.getName()); BeanDefinitionHolder postProcessorHolder = new BeanDefinitionHolder(postProcessorBuilder.getBeanDefinition(), ActivitiContextUtils.ANNOTATION_STATE_HANDLER_BEAN_FACTORY_POST_PROCESSOR_BEAN_NAME); configureProcessEngine(postProcessorBuilder.getBeanDefinition(), element); BeanDefinitionReaderUtils.registerBeanDefinition(postProcessorHolder, context.getRegistry()); }
Example 22
Project: jenkow-plugin-master File: StateHandlerAnnotationBeanFactoryPostProcessor.java View source code |
private void configureDefaultActivitiRegistry(String registryBeanName, BeanDefinitionRegistry registry) { if (!beanAlreadyConfigured(registry, registryBeanName, ActivitiStateHandlerRegistry.class)) { String registryName = ActivitiStateHandlerRegistry.class.getName(); log.info("registering a " + registryName + " instance under bean name " + ActivitiContextUtils.ACTIVITI_REGISTRY_BEAN_NAME + "."); RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(); rootBeanDefinition.setBeanClassName(registryName); rootBeanDefinition.getPropertyValues().addPropertyValue("processEngine", this.processEngine); BeanDefinitionHolder holder = new BeanDefinitionHolder(rootBeanDefinition, registryBeanName); BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); } }
Example 23
Project: milonga-master File: MilongaBeanDefinitionParser.java View source code |
@Override public BeanDefinition parse(Element element, ParserContext parserContext) { RootBeanDefinition handlerMappingDef = new RootBeanDefinition(AtmosRequestMappingHandlerMapping.class); handlerMappingDef.setSource(parserContext.extractSource(element)); boolean autoRefreshable = false; Element autoRefreshableElem = DomUtils.getChildElementByTagName(element, "autoRefreshable"); if (autoRefreshableElem != null) { autoRefreshable = Boolean.parseBoolean(autoRefreshableElem.getAttribute("value")); } List<Element> dirElemList = DomUtils.getChildElementsByTagName(element, "location"); String[] dirStrArr = new String[dirElemList.size()]; for (int i = 0; i < dirStrArr.length; i++) { dirStrArr[i] = dirElemList.get(i).getTextContent(); } handlerMappingDef.getPropertyValues().addPropertyValue(PROPERTY_USER_SOURCE_LOCATION, dirStrArr); handlerMappingDef.getPropertyValues().addPropertyValue(PROPERTY_AUTO_REFRESHABLE, autoRefreshable); String handlerMappingName = parserContext.getReaderContext().registerWithGeneratedName(handlerMappingDef); BeanDefinitionHolder handlerMappingBeanDefinitionHolder = new BeanDefinitionHolder(handlerMappingDef, handlerMappingName); BeanDefinitionReaderUtils.registerBeanDefinition(handlerMappingBeanDefinitionHolder, parserContext.getRegistry()); RootBeanDefinition propertySourceConfigurerDef = new RootBeanDefinition(PropertySourcesPlaceholderConfigurer.class); String propertySourceConfigurerName = parserContext.getReaderContext().registerWithGeneratedName(propertySourceConfigurerDef); BeanDefinitionHolder propertySourceConfigurerBeanDefinitionHolder = new BeanDefinitionHolder(propertySourceConfigurerDef, propertySourceConfigurerName); BeanDefinitionReaderUtils.registerBeanDefinition(propertySourceConfigurerBeanDefinitionHolder, parserContext.getRegistry()); return handlerMappingDef; }
Example 24
Project: mina-ftpserver-master File: ServerBeanDefinitionParser.java View source code |
/** * {@inheritDoc} */ @Override protected void doParse(final Element element, final ParserContext parserContext, final BeanDefinitionBuilder builder) { BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(FtpServerFactory.class); List<Element> childs = SpringUtil.getChildElements(element); for (Element childElm : childs) { String childName = childElm.getLocalName(); if ("listeners".equals(childName)) { Map<?, ?> listeners = parseListeners(childElm, parserContext, builder); if (listeners.size() > 0) { factoryBuilder.addPropertyValue("listeners", listeners); } } else if ("ftplets".equals(childName)) { Map<?, ?> ftplets = parseFtplets(childElm, parserContext, builder); factoryBuilder.addPropertyValue("ftplets", ftplets); } else if ("file-user-manager".equals(childName) || "db-user-manager".equals(childName)) { Object userManager = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("userManager", userManager); } else if ("user-manager".equals(childName)) { factoryBuilder.addPropertyValue("userManager", SpringUtil.parseSpringChildElement(childElm, parserContext, builder)); } else if ("native-filesystem".equals(childName)) { Object fileSystem = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("fileSystem", fileSystem); } else if ("filesystem".equals(childName)) { factoryBuilder.addPropertyValue("fileSystem", SpringUtil.parseSpringChildElement(childElm, parserContext, builder)); } else if ("commands".equals(childName)) { Object commandFactory = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("commandFactory", commandFactory); } else if ("messages".equals(childName)) { MessageResource mr = parseMessageResource(childElm, parserContext, builder); factoryBuilder.addPropertyValue("messageResource", mr); } else { throw new FtpServerConfigurationException("Unknown configuration name: " + childName); } } // Configure login limits ConnectionConfigFactory connectionConfig = new ConnectionConfigFactory(); if (StringUtils.hasText(element.getAttribute("max-logins"))) { connectionConfig.setMaxLogins(SpringUtil.parseInt(element, "max-logins")); } if (StringUtils.hasText(element.getAttribute("max-threads"))) { connectionConfig.setMaxThreads(SpringUtil.parseInt(element, "max-threads")); } if (StringUtils.hasText(element.getAttribute("max-anon-logins"))) { connectionConfig.setMaxAnonymousLogins(SpringUtil.parseInt(element, "max-anon-logins")); } if (StringUtils.hasText(element.getAttribute("anon-enabled"))) { connectionConfig.setAnonymousLoginEnabled(SpringUtil.parseBoolean(element, "anon-enabled", true)); } if (StringUtils.hasText(element.getAttribute("max-login-failures"))) { connectionConfig.setMaxLoginFailures(SpringUtil.parseInt(element, "max-login-failures")); } if (StringUtils.hasText(element.getAttribute("login-failure-delay"))) { connectionConfig.setLoginFailureDelay(SpringUtil.parseInt(element, "login-failure-delay")); } factoryBuilder.addPropertyValue("connectionConfig", connectionConfig.createConnectionConfig()); BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition(); String factoryName = parserContext.getReaderContext().generateBeanName(factoryDefinition); BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryName); registerBeanDefinition(factoryHolder, parserContext.getRegistry()); // set the factory on the listener bean builder.getRawBeanDefinition().setFactoryBeanName(factoryName); builder.getRawBeanDefinition().setFactoryMethodName("createServer"); }
Example 25
Project: monitoring-master File: ClassPathDefinitionScannerDoScanInterceptor.java View source code |
@Override public void after(Object target, Object[] args, Object result, Throwable throwable) { if (result == null || throwable != null || !(result instanceof Set)) { return; } try { final Set<Object> set = (Set<Object>) result; for (Object o : set) { if (o instanceof BeanDefinitionHolder) { final BeanDefinitionHolder beanDefinitionHolder = (BeanDefinitionHolder) o; if (filter.isTarget(SpringBeansTargetScope.COMPONENT_SCAN, beanDefinitionHolder.getBeanName(), beanDefinitionHolder.getBeanDefinition())) { final String className = beanDefinitionHolder.getBeanDefinition().getBeanClassName(); this.instrumentor.transform(this.classLoader, className, this.transformer); this.filter.addTransformed(className); } } } } catch (Throwable t) { if (logger.isWarnEnabled()) { logger.warn("AFTER. Caused:{}", t.getMessage(), t); } } }
Example 26
Project: opencredo-esper-master File: EsperListenerParser.java View source code |
/**
* Parses out a set of configured esper statement listeners.
*
* @param element
* the esper listeners element
* @param parserContext
* the parser's current context
* @return a list of configured esper statement listeners
*/
@SuppressWarnings("unchecked")
public ManagedSet parseListeners(Element element, ParserContext parserContext) {
ManagedSet listeners = new ManagedSet();
NodeList childNodes = element.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
Node child = childNodes.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element childElement = (Element) child;
String localName = child.getLocalName();
if ("bean".equals(localName)) {
BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(childElement);
parserContext.registerBeanComponent(new BeanComponentDefinition(holder));
listeners.add(new RuntimeBeanReference(holder.getBeanName()));
} else if ("ref".equals(localName)) {
String ref = childElement.getAttribute("bean");
listeners.add(new RuntimeBeanReference(ref));
}
}
}
return listeners;
}
Example 27
Project: pentaho-platform-master File: BeanPublishParser.java View source code |
@Override public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder beanDefinitionHolder, ParserContext parserContext) { String publishType = null; String beanClassName; // factory will be stored as an attribute. if (beanDefinitionHolder.getBeanDefinition().getAttribute("originalClassName") != null) { beanClassName = beanDefinitionHolder.getBeanDefinition().getAttribute("originalClassName").toString(); } else { beanClassName = beanDefinitionHolder.getBeanDefinition().getBeanClassName(); } if (node.getAttributes().getNamedItem(ATTR) != null) { // publish as type if specified publishType = node.getAttributes().getNamedItem(ATTR).getNodeValue(); } else { // fallback to publish as itself publishType = beanClassName; } // capture the "ID" of the bean as an attribute so it can be queried for beanDefinitionHolder.getBeanDefinition().setAttribute("id", beanDefinitionHolder.getBeanName()); NodeList nodes = node.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (stripNamespace(n.getNodeName()).equals(Const.ATTRIBUTES)) { NodeList attrnodes = n.getChildNodes(); for (int y = 0; y < attrnodes.getLength(); y++) { Node an = attrnodes.item(y); if (stripNamespace(an.getNodeName()).equals(Const.ATTR)) { beanDefinitionHolder.getBeanDefinition().setAttribute(an.getAttributes().getNamedItem(Const.KEY).getNodeValue(), an.getAttributes().getNamedItem(Const.VALUE).getNodeValue()); } } } } try { List<Class<?>> classesToPublish = new ArrayList<Class<?>>(); Class<?> clazz = findClass(beanClassName); if (specialPublishTypes.INTERFACES.name().equals(publishType)) { if (clazz.isInterface()) { // publish as self if interface already (re-publish flow) classesToPublish.add(clazz); } else { classesToPublish.addAll(ClassUtils.getAllInterfaces(clazz)); } } else if (specialPublishTypes.CLASSES.name().equals(publishType)) { classesToPublish.addAll(ClassUtils.getAllSuperclasses(clazz)); classesToPublish.add(clazz); } else if (specialPublishTypes.ALL.name().equals(publishType)) { classesToPublish.addAll(ClassUtils.getAllInterfaces(clazz)); classesToPublish.addAll(ClassUtils.getAllSuperclasses(clazz)); classesToPublish.add(clazz); } else { classesToPublish.add(getClass().getClassLoader().loadClass(publishType)); } String beanFactoryId = null; if (parserContext.getRegistry().containsBeanDefinition(Const.FACTORY_MARKER) == false) { beanFactoryId = UUID.randomUUID().toString(); parserContext.getRegistry().registerBeanDefinition(Const.FACTORY_MARKER, BeanDefinitionBuilder.genericBeanDefinition(Marker.class).setScope(BeanDefinition.SCOPE_PROTOTYPE).addConstructorArgValue(beanFactoryId).getBeanDefinition()); } else { beanFactoryId = (String) parserContext.getRegistry().getBeanDefinition(Const.FACTORY_MARKER).getConstructorArgumentValues().getArgumentValue(0, String.class).getValue(); } for (Class cls : classesToPublish) { PublishedBeanRegistry.registerBean(beanDefinitionHolder.getBeanName(), cls, beanFactoryId); } } catch (ClassNotFoundException e) { throw new RuntimeException("Cannot find class for publish type: " + publishType + " specified on publish of bean id: " + beanDefinitionHolder.getBeanName(), e); } return beanDefinitionHolder; }
Example 28
Project: pinpoint-master File: ClassPathDefinitionScannerDoScanInterceptor.java View source code |
@Override public void after(Object target, Object[] args, Object result, Throwable throwable) { if (result == null || throwable != null || !(result instanceof Set)) { return; } try { final Set<Object> set = (Set<Object>) result; for (Object o : set) { if (o instanceof BeanDefinitionHolder) { final BeanDefinitionHolder beanDefinitionHolder = (BeanDefinitionHolder) o; if (filter.isTarget(SpringBeansTargetScope.COMPONENT_SCAN, beanDefinitionHolder.getBeanName(), beanDefinitionHolder.getBeanDefinition())) { final String className = beanDefinitionHolder.getBeanDefinition().getBeanClassName(); this.instrumentor.transform(this.classLoader, className, this.transformer); this.filter.addTransformed(className); } } } } catch (Throwable t) { if (logger.isWarnEnabled()) { logger.warn("AFTER. Caused:{}", t.getMessage(), t); } } }
Example 29
Project: smsc-server-master File: ServerBeanDefinitionParser.java View source code |
/** * {@inheritDoc} */ @Override protected void doParse(final Element element, final ParserContext parserContext, final BeanDefinitionBuilder builder) { BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(SmscServerFactory.class); List<Element> childs = SpringUtil.getChildElements(element); for (Element childElm : childs) { String childName = childElm.getLocalName(); if ("listeners".equals(childName)) { Map<?, ?> listeners = this.parseListeners(childElm, parserContext, builder); if (listeners.size() > 0) { factoryBuilder.addPropertyValue("listeners", listeners); } } else if ("smsclets".equals(childName)) { Map<?, ?> smsclets = this.parseSmsclets(childElm, parserContext, builder); factoryBuilder.addPropertyValue("smsclets", smsclets); } else if ("message-manager".equals(childName)) { Object userManager = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("messageManager", userManager); } else if ("file-user-manager".equals(childName) || "db-user-manager".equals(childName)) { Object userManager = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("userManager", userManager); } else if ("user-manager".equals(childName)) { factoryBuilder.addPropertyValue("userManager", SpringUtil.parseSpringChildElement(childElm, parserContext, builder)); } else if ("commands".equals(childName)) { Object commandFactory = parserContext.getDelegate().parseCustomElement(childElm, builder.getBeanDefinition()); factoryBuilder.addPropertyValue("commandFactory", commandFactory); } else { throw new SmscServerConfigurationException("Unknown configuration name: " + childName); } } // Configure the connection config ConnectionConfigFactory connectionConfig = new ConnectionConfigFactory(); if (StringUtils.hasText(element.getAttribute("max-binds"))) { connectionConfig.setMaxBinds(SpringUtil.parseInt(element, "max-binds")); } if (StringUtils.hasText(element.getAttribute("min-threads"))) { connectionConfig.setMinThreads(SpringUtil.parseInt(element, "min-threads")); } if (StringUtils.hasText(element.getAttribute("max-threads"))) { connectionConfig.setMaxThreads(SpringUtil.parseInt(element, "max-threads")); } if (StringUtils.hasText(element.getAttribute("max-bind-failures"))) { connectionConfig.setMaxBindFailures(SpringUtil.parseInt(element, "max-bind-failures")); } if (StringUtils.hasText(element.getAttribute("bind-failure-delay"))) { connectionConfig.setBindFailureDelay(SpringUtil.parseInt(element, "bind-failure-delay")); } factoryBuilder.addPropertyValue("connectionConfig", connectionConfig.createConnectionConfig()); // Configure the delivery manager DeliveryManagerConfigFactory deliveryManagerConfig = new DeliveryManagerConfigFactory(); if (StringUtils.hasText(element.getAttribute("delivery-threads"))) { deliveryManagerConfig.setManagerThreads(SpringUtil.parseInt(element, "delivery-threads")); } if (StringUtils.hasText(element.getAttribute("min-delivery-threads"))) { deliveryManagerConfig.setMinThreads(SpringUtil.parseInt(element, "min-delivery-threads")); } if (StringUtils.hasText(element.getAttribute("max-delivery-threads"))) { deliveryManagerConfig.setMaxThreads(SpringUtil.parseInt(element, "max-delivery-threads")); } if (StringUtils.hasText(element.getAttribute("delivery-retry-periods"))) { deliveryManagerConfig.setDeliveryRetryPeriods(element.getAttribute("delivery-retry-periods")); } if (StringUtils.hasText(element.getAttribute("delivery-poll-time"))) { deliveryManagerConfig.setDeliveryPollTime(SpringUtil.parseInt(element, "delivery-poll-time")); } factoryBuilder.addPropertyValue("deliveryManagerConfig", deliveryManagerConfig.createDeliveryManagerConfig()); if (StringUtils.hasText(element.getAttribute("sessionLockTimeout"))) { factoryBuilder.addPropertyValue("session-lock-timeout", SpringUtil.parseInt(element, "session-lock-timeout")); } BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition(); String factoryName = parserContext.getReaderContext().generateBeanName(factoryDefinition); BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryName); this.registerBeanDefinition(factoryHolder, parserContext.getRegistry()); // set the factory on the listener bean builder.getRawBeanDefinition().setFactoryBeanName(factoryName); builder.getRawBeanDefinition().setFactoryMethodName("createServer"); }
Example 30
Project: spring-cloud-bus-master File: RemoteApplicationEventRegistrar.java View source code |
// patterned after Spring Integration IntegrationComponentScanRegistrar @Override public void registerBeanDefinitions(final AnnotationMetadata importingClassMetadata, final BeanDefinitionRegistry registry) { Map<String, Object> componentScan = importingClassMetadata.getAnnotationAttributes(RemoteApplicationEventScan.class.getName(), false); Set<String> basePackages = new HashSet<>(); for (String pkg : (String[]) componentScan.get("value")) { if (StringUtils.hasText(pkg)) { basePackages.add(pkg); } } for (String pkg : (String[]) componentScan.get("basePackages")) { if (StringUtils.hasText(pkg)) { basePackages.add(pkg); } } for (Class<?> clazz : (Class[]) componentScan.get("basePackageClasses")) { basePackages.add(ClassUtils.getPackageName(clazz)); } if (basePackages.isEmpty()) { basePackages.add(ClassUtils.getPackageName(importingClassMetadata.getClassName())); } BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(BusJacksonMessageConverter.class); beanDefinitionBuilder.addPropertyValue("packagesToScan", basePackages.toArray(new String[basePackages.size()])); AbstractBeanDefinition beanDefinition = beanDefinitionBuilder.getBeanDefinition(); BeanDefinitionHolder holder = new BeanDefinitionHolder(beanDefinition, "busJsonConverter"); BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); }
Example 31
Project: spring-hadoop-master File: YarnNamespaceUtils.java View source code |
/**
* Parses inner bean definition from an dom element.
*
* @param element the dom element
* @param parserContext the parser context
* @return bean component definition
*/
public static BeanComponentDefinition parseInnerHandlerDefinition(Element element, ParserContext parserContext) {
// parses out the inner bean definition for concrete implementation if defined
List<Element> childElements = DomUtils.getChildElementsByTagName(element, "bean");
BeanComponentDefinition innerComponentDefinition = null;
if (childElements != null && childElements.size() == 1) {
Element beanElement = childElements.get(0);
BeanDefinitionParserDelegate delegate = parserContext.getDelegate();
BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(beanElement);
bdHolder = delegate.decorateBeanDefinitionIfRequired(beanElement, bdHolder);
BeanDefinition inDef = bdHolder.getBeanDefinition();
innerComponentDefinition = new BeanComponentDefinition(inDef, bdHolder.getBeanName());
}
String ref = element.getAttribute(REF_ATTRIBUTE);
if (StringUtils.hasText(ref) && innerComponentDefinition != null) {
parserContext.getReaderContext().error("Ambiguous definition. Inner bean " + (innerComponentDefinition == null ? innerComponentDefinition : innerComponentDefinition.getBeanDefinition().getBeanClassName()) + " declaration and \"ref\" " + ref + " are not allowed together on element " + createElementDescription(element) + ".", parserContext.extractSource(element));
}
return innerComponentDefinition;
}
Example 32
Project: spring-integration-master File: IntegrationNamespaceUtils.java View source code |
public static BeanComponentDefinition parseInnerHandlerDefinition(Element element, ParserContext parserContext) {
// parses out the inner bean definition for concrete implementation if defined
List<Element> childElements = DomUtils.getChildElementsByTagName(element, "bean");
BeanComponentDefinition innerComponentDefinition = null;
if (childElements != null && childElements.size() == 1) {
Element beanElement = childElements.get(0);
BeanDefinitionParserDelegate delegate = parserContext.getDelegate();
BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(beanElement);
bdHolder = delegate.decorateBeanDefinitionIfRequired(beanElement, bdHolder);
BeanDefinition inDef = bdHolder.getBeanDefinition();
innerComponentDefinition = new BeanComponentDefinition(inDef, bdHolder.getBeanName());
}
String ref = element.getAttribute(REF_ATTRIBUTE);
if (StringUtils.hasText(ref) && innerComponentDefinition != null) {
parserContext.getReaderContext().error("Ambiguous definition. Inner bean " + (innerComponentDefinition.getBeanDefinition().getBeanClassName()) + " declaration and \"ref\" " + ref + " are not allowed together on element " + IntegrationNamespaceUtils.createElementDescription(element) + ".", parserContext.extractSource(element));
}
return innerComponentDefinition;
}
Example 33
Project: spring-modules-ehcache-master File: BeanReferenceParserImplTests.java View source code |
public void testParseWithAnonymousBean() { String beanName = ""; Element beanElement = createBeanElementBuilder(beanName).toXml(); Element referenceElement = elementBuilder.toXml(); referenceElement.appendChild(beanElement); RootBeanDefinition beanDefinition = new RootBeanDefinition(String.class); BeanDefinitionHolder holder = new BeanDefinitionHolder(beanDefinition, beanName); delegate.parseBeanDefinitionElement(beanElement, null); helperControl.setReturnValue(holder); helperControl.replay(); // method to test Object actual = parser.parse(referenceElement, parserContext, true); assertSame(holder, actual); // assert the bean definition was not registered. assertEquals(0, registry.getBeanDefinitionCount()); }
Example 34
Project: spring-modules-master File: IndexBeanDefinitionParser.java View source code |
private BeanDefinitionHolder handlerAnalyzerDefinition(Element element, RootBeanDefinition definition, ParserContext parserContext) { Element beanElement = DomUtils.getChildElementByTagName(element, BEAN_ELEMENT); if (beanElement != null) { //Compute the inner bean of the analyzer BeanDefinitionParserDelegate delegate = parserContext.getDelegate(); BeanDefinitionHolder holder = delegate.parseBeanDefinitionElement(beanElement, definition); if (holder != null) { holder = delegate.decorateBeanDefinitionIfRequired(beanElement, holder); } return holder; } return null; }
Example 35
Project: cloudtm-data-platform-master File: InfinispanNamespaceUtils.java View source code |
public static BeanComponentDefinition parseInnerBeanDefinition(Element element, ParserContext parserContext) {
List<Element> childElements = DomUtils.getChildElementsByTagName(element, "bean");
BeanComponentDefinition innerComponentDefinition = null;
if (childElements != null && childElements.size() == 1) {
Element beanElement = childElements.get(0);
if (!"http://www.springframework.org/schema/beans".equals(beanElement.getNamespaceURI())) {
throw new IllegalStateException("Illegal inner child element");
}
BeanDefinitionParserDelegate delegate = parserContext.getDelegate();
BeanDefinitionHolder beanDefinitionHolder = delegate.parseBeanDefinitionElement(beanElement);
beanDefinitionHolder = delegate.decorateBeanDefinitionIfRequired(beanElement, beanDefinitionHolder);
BeanDefinition beanDefinition = beanDefinitionHolder.getBeanDefinition();
innerComponentDefinition = new BeanComponentDefinition(beanDefinition, beanDefinitionHolder.getBeanName());
}
return innerComponentDefinition;
}
Example 36
Project: darks-orm-master File: MapperClassDefinitionScanner.java View source code |
@Override protected Set<BeanDefinitionHolder> doScan(String... scanPackages) { Set<BeanDefinitionHolder> definitions = super.doScan(scanPackages); if (definitions.isEmpty()) { log.warn("No bean definition found in target packages " + Arrays.toString(scanPackages)); } else { for (BeanDefinitionHolder holder : definitions) { GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition(); processBeanDefinition(definition); } } return definitions; }
Example 37
Project: druid-master File: DruidStatBeanDefinitionParser.java View source code |
private static void registerComponent(ParserContext parserContext, BeanDefinitionBuilder builder, String beanName) { builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); parserContext.getRegistry().registerBeanDefinition(beanName, builder.getBeanDefinition()); BeanDefinitionHolder holder = new BeanDefinitionHolder(builder.getBeanDefinition(), beanName); parserContext.registerComponent(new BeanComponentDefinition(holder)); }
Example 38
Project: easylocate-master File: RestTemplateBeanDefinitionParser.java View source code |
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String accessTokenProviderRef = element.getAttribute("access-token-provider"); builder.addConstructorArgReference(element.getAttribute("resource")); BeanDefinitionBuilder request = BeanDefinitionBuilder.genericBeanDefinition(DefaultAccessTokenRequest.class); request.setScope("request"); request.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); request.addConstructorArgValue("#{request.parameterMap}"); request.addPropertyValue("currentUri", "#{request.getAttribute('currentUri')}"); BeanDefinitionHolder requestDefinition = new BeanDefinitionHolder(request.getRawBeanDefinition(), parserContext.getReaderContext().generateBeanName(request.getRawBeanDefinition())); parserContext.getRegistry().registerBeanDefinition(requestDefinition.getBeanName(), requestDefinition.getBeanDefinition()); BeanDefinitionHolder requestHolder = ScopedProxyUtils.createScopedProxy(requestDefinition, parserContext.getRegistry(), false); BeanDefinitionBuilder scopedContext = BeanDefinitionBuilder.genericBeanDefinition(DefaultOAuth2ClientContext.class); scopedContext.setScope("session"); scopedContext.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); BeanDefinitionHolder contextDefinition = new BeanDefinitionHolder(scopedContext.getRawBeanDefinition(), parserContext.getReaderContext().generateBeanName(scopedContext.getRawBeanDefinition())); parserContext.getRegistry().registerBeanDefinition(contextDefinition.getBeanName(), contextDefinition.getBeanDefinition()); BeanDefinitionHolder contextHolder = ScopedProxyUtils.createScopedProxy(contextDefinition, parserContext.getRegistry(), false); scopedContext.addConstructorArgValue(requestHolder.getBeanDefinition()); BeanDefinitionBuilder bareContext = BeanDefinitionBuilder.genericBeanDefinition(DefaultOAuth2ClientContext.class); BeanDefinitionBuilder context = BeanDefinitionBuilder.genericBeanDefinition(OAuth2ClientContextFactoryBean.class); context.addPropertyValue("scopedContext", contextHolder.getBeanDefinition()); context.addPropertyValue("bareContext", bareContext.getBeanDefinition()); context.addPropertyReference("resource", element.getAttribute("resource")); builder.addConstructorArgValue(context.getBeanDefinition()); if (StringUtils.hasText(accessTokenProviderRef)) { builder.addPropertyReference("accessTokenProvider", accessTokenProviderRef); } parserContext.getDelegate().parsePropertyElements(element, builder.getBeanDefinition()); }
Example 39
Project: eql-master File: ClassPathEqlerScanner.java View source code |
/** * Calls the parent search that will search and register all the candidates. * Then the registered objects are post processed to set them as * MapperFactoryBeans */ @Override public Set<BeanDefinitionHolder> doScan(String... basePackages) { Set<BeanDefinitionHolder> beanDefinitions = super.doScan(basePackages); if (beanDefinitions.isEmpty()) { logger.warn("No eqler was found in '" + Arrays.toString(basePackages) + "' package. Please check your configuration."); } else { for (BeanDefinitionHolder holder : beanDefinitions) { GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition(); if (logger.isDebugEnabled()) { logger.debug("Creating EqlerFactoryBean with name '" + holder.getBeanName() + "' and '" + definition.getBeanClassName() + "' eqlerInterface"); } // the mapper interface is the original class of the bean // but, the actual class of the bean is MapperFactoryBean definition.getPropertyValues().add("eqlerInterface", definition.getBeanClassName()); definition.setBeanClass(EqlerFactoryBean.class); } } return beanDefinitions; }
Example 40
Project: hasor-master File: HasorDefinitionParser.java View source code |
@Override
protected AbstractBeanDefinition parse(Element element, NamedNodeMap attributes, ParserContext parserContext) {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition();
builder.getRawBeanDefinition().setBeanClass(SpringFactoryBean.class);
//�例
builder.setScope(BeanDefinition.SCOPE_SINGLETON);
//
String shareEvent = revertProperty(attributes, "shareEvent");
if (StringUtils.isNotBlank(shareEvent)) {
builder.addPropertyValue("shareEvent", Boolean.parseBoolean(shareEvent));
}
//
String startWith = revertProperty(attributes, "startWith");
String startWithRef = revertProperty(attributes, "startWithRef");
if (StringUtils.isNotBlank(startWith) || StringUtils.isNotBlank(startWithRef)) {
ManagedList list = new ManagedList();
list.setSource(ArrayList.class);
list.setMergeEnabled(false);
builder.addPropertyValue("modules", list);
if (StringUtils.isNotBlank(startWithRef)) {
//-startWithRef
String[] refs = startWithRef.split(",");
for (String refName : refs) {
list.add(new RuntimeBeanReference(refName));
}
} else {
//-startWith
BeanDefinitionBuilder startWithBuilder = BeanDefinitionBuilder.genericBeanDefinition(startWith);
AbstractBeanDefinition startWithDefine = startWithBuilder.getBeanDefinition();
String beanName = new DefaultBeanNameGenerator().generateBeanName(startWithDefine, parserContext.getRegistry());
list.add(new BeanDefinitionHolder(startWithDefine, beanName));
}
}
String refPropertiesBean = revertProperty(attributes, "refProperties");
builder.addPropertyValue("refProperties", refPropertiesBean);
//
String configFile = null;
String factoryID = revertProperty(attributes, beanID());
if (StringUtils.isBlank(factoryID)) {
factoryID = AppContext.class.getName();
}
BeanDefinitionParser parser = new BeanDefinitionParser(factoryID);
//
Node node = element.getFirstChild();
while (node != null) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element entry = (Element) node;
if (entry.getLocalName().equals("configFile")) {
configFile = entry.getFirstChild().getNodeValue();
if (StringUtils.isBlank(configFile)) {
configFile = node.getNodeValue();
}
} else if (entry.getLocalName().equals("bean")) {
parser.parse((Element) node, parserContext);
}
}
node = node.getNextSibling();
}
if (StringUtils.isNotBlank(configFile)) {
builder.addPropertyValue("config", configFile);
}
//
return builder.getBeanDefinition();
}
Example 41
Project: jrugged-master File: PerformanceMonitorBeanDefinitionDecorator.java View source code |
/**
* Registers a BeanNameAutoProxyCreator class that wraps the bean being
* monitored. The proxy is associated with the PerformanceMonitorInterceptor
* for the bean, which is created when parsing the methods attribute from
* the springconfiguration xml file.
*
* @param source An Attribute node from the spring configuration
* @param holder A container for the beans I will create
* @param context the context currently parsing my spring config
*/
private void registerProxyCreator(Node source, BeanDefinitionHolder holder, ParserContext context) {
String beanName = holder.getBeanName();
String proxyName = beanName + "Proxy";
String interceptorName = beanName + "PerformanceMonitorInterceptor";
BeanDefinitionBuilder initializer = BeanDefinitionBuilder.rootBeanDefinition(BeanNameAutoProxyCreator.class);
initializer.addPropertyValue("beanNames", beanName);
initializer.addPropertyValue("interceptorNames", interceptorName);
BeanDefinitionRegistry registry = context.getRegistry();
registry.registerBeanDefinition(proxyName, initializer.getBeanDefinition());
}
Example 42
Project: olingo-odata2-master File: OlingoServerDefinitionParser.java View source code |
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder bean) { super.doParse(element, parserContext, bean); if (!parserContext.getRegistry().containsBeanDefinition(OLINGO_ODATA_EXCEPTION_HANDLER)) { AbstractBeanDefinition definition = BeanDefinitionBuilder.genericBeanDefinition(ODataExceptionMapperImpl.class).getBeanDefinition(); definition.setScope(BeanDefinition.SCOPE_PROTOTYPE); BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, OLINGO_ODATA_EXCEPTION_HANDLER, new String[0]); registerBeanDefinition(holder, parserContext.getRegistry()); } if (!parserContext.getRegistry().containsBeanDefinition(OLINGO_ODATA_PROVIDER)) { AbstractBeanDefinition definition = BeanDefinitionBuilder.genericBeanDefinition(ODataApplication.MyProvider.class).getBeanDefinition(); definition.setScope(BeanDefinition.SCOPE_PROTOTYPE); BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, OLINGO_ODATA_PROVIDER, new String[0]); registerBeanDefinition(holder, parserContext.getRegistry()); } BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(OlingoRootLocator.class); builder.setScope(BeanDefinition.SCOPE_PROTOTYPE); builder.addPropertyReference(SERVICE_FACTORY, element.getAttribute(FACTORY)); if (element.hasAttribute(PATH_SPLIT)) { builder.addPropertyValue(PATH_SPLIT, element.getAttribute(PATH_SPLIT)); } AbstractBeanDefinition definition = builder.getBeanDefinition(); BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, OLINGO_ROOT_LOCATOR + "-" + element.getAttribute(ID) + "-" + element.getAttribute(FACTORY)); registerBeanDefinition(holder, parserContext.getRegistry()); ManagedList<BeanDefinition> services = new ManagedList<BeanDefinition>(3); services.add(definition); services.add(parserContext.getRegistry().getBeanDefinition(OLINGO_ODATA_EXCEPTION_HANDLER)); services.add(parserContext.getRegistry().getBeanDefinition(OLINGO_ODATA_PROVIDER)); bean.addPropertyValue(SERVICE_BEANS, services); }
Example 43
Project: spring-amqp-master File: NamespaceUtils.java View source code |
public static BeanComponentDefinition parseInnerBeanDefinition(Element element, ParserContext parserContext) {
// parses out inner bean definition for concrete implementation if defined
List<Element> childElements = DomUtils.getChildElementsByTagName(element, "bean");
BeanComponentDefinition innerComponentDefinition = null;
if (childElements != null && childElements.size() == 1) {
Element beanElement = childElements.get(0);
BeanDefinitionParserDelegate delegate = parserContext.getDelegate();
BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(beanElement);
bdHolder = delegate.decorateBeanDefinitionIfRequired(beanElement, bdHolder);
BeanDefinition inDef = bdHolder.getBeanDefinition();
String beanName = BeanDefinitionReaderUtils.generateBeanName(inDef, parserContext.getRegistry());
innerComponentDefinition = new BeanComponentDefinition(inDef, beanName);
parserContext.registerBeanComponent(innerComponentDefinition);
}
String ref = element.getAttribute(REF_ATTRIBUTE);
//NOSONAR
Assert.isTrue(//NOSONAR
!StringUtils.hasText(ref) || innerComponentDefinition == null, "Ambiguous definition. Inner bean " + (innerComponentDefinition == null ? innerComponentDefinition : innerComponentDefinition.getBeanDefinition().getBeanClassName()) + " declaration and \"ref\" " + ref + " are not allowed together.");
return innerComponentDefinition;
}
Example 44
Project: spring-data-cassandra-master File: CassandraMappingBeanFactoryPostProcessor.java View source code |
private void registerMissingDefaultableBeanDefinitions(BeanDefinitionRegistry registry, ListableBeanFactory factory) { // see if any template definitions exist, which requires a converter, which requires a mapping context BeanDefinitionHolder[] templateBeans = getBeanDefinitionsOfType(registry, factory, CassandraOperations.class, true, true); if (templateBeans.length >= 1) { return; } // need a session & converter for the default template // see if an actual Session definition exists String sessionBeanName = findSessionBeanName(registry, factory); // see if any converter bean definitions exist, which requires a mapping context BeanDefinitionHolder[] converterBeans = getBeanDefinitionsOfType(registry, factory, MappingCassandraConverter.class, true, false); if (converterBeans.length > 1) { throw createAmbiguousBeansException(converterBeans.length, CassandraConverter.class, CassandraTemplate.class); } if (converterBeans.length == 1) { registerDefaultTemplate(registry, sessionBeanName, converterBeans[0].getBeanName()); return; } // see if any mapping context bean definitions exist BeanDefinitionHolder[] contextBeans = getBeanDefinitionsOfType(registry, factory, CassandraMappingContext.class, true, false); if (contextBeans.length > 1) { // then throw, because we need to create a default converter, but we wouldn't know which mapping context to use throw createAmbiguousBeansException(contextBeans.length, MappingCassandraConverter.class, CassandraMappingContext.class); } // create the mapping context if necessary BeanDefinitionHolder contextBean = contextBeans.length == 1 ? contextBeans[0] : registerDefaultContext(registry); // create the default converter & template bean definitions BeanDefinitionHolder converter = registerDefaultConverter(registry, contextBean.getBeanName()); registerDefaultTemplate(registry, sessionBeanName, converter.getBeanName()); }
Example 45
Project: spring-flex-master File: RemotingDestinationExporterBeanDefinitionFactory.java View source code |
/** * The main parsing algorithm for the <code>remoting-destination</code> tag. * * @param element the element being parsed * @param parserContext the current parser context * @param exportedBeanReference reference to the bean being exported as a remoting destination * @return a bean definition holder for the {@link RemotingDestinationExporter} bean */ protected BeanDefinitionHolder parseInternal(Element element, ParserContext parserContext, String exportedBeanReference) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(REMOTING_DESTINATION_EXPORTER_CLASS_NAME); builder.getRawBeanDefinition().setRole(BeanDefinition.ROLE_INFRASTRUCTURE); validateRemotingDestination(element, parserContext); String destinationId = element.getAttribute(DESTINATION_ID_ATTR); String brokerId = element.getAttribute(MESSAGE_BROKER_ATTR); builder.addPropertyValue(SERVICE_PROPERTY, exportedBeanReference); builder.addDependsOn(exportedBeanReference); destinationId = StringUtils.hasText(destinationId) ? destinationId : exportedBeanReference; builder.addPropertyValue(DESTINATION_ID_PROPERTY, destinationId); brokerId = StringUtils.hasText(brokerId) ? brokerId : BeanIds.MESSAGE_BROKER; builder.addPropertyReference(MESSAGE_BROKER_PROPERTY, brokerId); ParsingUtils.mapOptionalAttributes(element, parserContext, builder, CHANNELS_ATTR, INCLUDE_METHODS_ATTR, EXCLUDE_METHODS_ATTR, SERVICE_ADAPTER_ATTR); String beanName = ParsingUtils.registerInfrastructureComponent(element, parserContext, builder); return new BeanDefinitionHolder(builder.getBeanDefinition(), beanName); }
Example 46
Project: spring-ide-master File: BeansModelUtils.java View source code |
/** * Returns a string representation of the given value object. */ public static String getValueName(Object value) { // Ignore bean name of inner beans if (value instanceof BeanDefinitionHolder) { value = ((BeanDefinitionHolder) value).getBeanDefinition(); } StringBuffer name = new StringBuffer(); if (value instanceof String) { name.append('"').append(value).append('"'); } else if (value instanceof BeanDefinition) { name.append("bean "); if (value instanceof RootBeanDefinition) { name.append('['); name.append(((RootBeanDefinition) value).getBeanClassName()); name.append(']'); } else { name.append('<'); name.append(((BeanDefinition) value).getParentName()); name.append('>'); } } else if (value instanceof RuntimeBeanReference) { name.append("reference "); String beanName = ((RuntimeBeanReference) value).getBeanName(); name.append('<').append(beanName).append(">"); } else if (value != null) { String valueName = null; if (value.getClass().isArray()) { valueName = "[" + StringUtils.arrayToDelimitedString((Object[]) value, ", ") + "]"; } else { valueName = value.toString(); } if (valueName.length() > 30) { name.append(valueName.substring(0, 12)).append(" .. ").append(valueName.substring(valueName.length() - 13)); } else { name.append(valueName); } } else { name.append("<null>"); } return name.toString(); }
Example 47
Project: spring-rest-client-master File: ClassPathSpringRestClientScanner.java View source code |
/** * Calls the parent search that will search and register all the candidates. * Then the registered objects are post processed to set them as * MapperFactoryBeans */ @Override public Set<BeanDefinitionHolder> doScan(String... basePackages) { val beanDefinitions = super.doScan(basePackages); if (beanDefinitions.isEmpty()) { log.warn("No SpringRestClientEnabled was found in '" + Arrays.toString(basePackages) + "' package. Please check your configuration."); } else { for (BeanDefinitionHolder holder : beanDefinitions) { val definition = (GenericBeanDefinition) holder.getBeanDefinition(); if (log.isDebugEnabled()) { log.debug("Creating SpringRestClientFactoryBean with name '" + holder.getBeanName() + "' and '" + definition.getBeanClassName() + "' interfaceClazz"); } // the mapper interface is the original class of the bean // but, the actual class of the bean is MapperFactoryBean definition.getPropertyValues().add("interfaceClazz", definition.getBeanClassName()); definition.setBeanClass(SpringRestClientFactoryBean.class); } } return beanDefinitions; }
Example 48
Project: spring-security-master File: SecurityNamespaceHandler.java View source code |
public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext pc) { String name = pc.getDelegate().getLocalName(node); // We only handle elements if (node instanceof Element) { if (Elements.INTERCEPT_METHODS.equals(name)) { return interceptMethodsBDD.decorate(node, definition, pc); } if (Elements.FILTER_CHAIN_MAP.equals(name)) { if (filterChainMapBDD == null) { loadParsers(); } if (filterChainMapBDD == null) { reportMissingWebClasses(name, pc, node); } return filterChainMapBDD.decorate(node, definition, pc); } } reportUnsupportedNodeType(name, pc, node); return null; }
Example 49
Project: spring-security-oauth-master File: RestTemplateBeanDefinitionParser.java View source code |
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String accessTokenProviderRef = element.getAttribute("access-token-provider"); builder.addConstructorArgReference(element.getAttribute("resource")); BeanDefinitionBuilder request = BeanDefinitionBuilder.genericBeanDefinition(DefaultAccessTokenRequest.class); request.setScope("request"); request.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); request.addConstructorArgValue("#{request.parameterMap}"); request.addPropertyValue("currentUri", "#{request.getAttribute('currentUri')}"); BeanDefinitionHolder requestDefinition = new BeanDefinitionHolder(request.getRawBeanDefinition(), parserContext.getReaderContext().generateBeanName(request.getRawBeanDefinition())); parserContext.getRegistry().registerBeanDefinition(requestDefinition.getBeanName(), requestDefinition.getBeanDefinition()); BeanDefinitionHolder requestHolder = ScopedProxyUtils.createScopedProxy(requestDefinition, parserContext.getRegistry(), false); BeanDefinitionBuilder scopedContext = BeanDefinitionBuilder.genericBeanDefinition(DefaultOAuth2ClientContext.class); scopedContext.setScope("session"); scopedContext.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); BeanDefinitionHolder contextDefinition = new BeanDefinitionHolder(scopedContext.getRawBeanDefinition(), parserContext.getReaderContext().generateBeanName(scopedContext.getRawBeanDefinition())); parserContext.getRegistry().registerBeanDefinition(contextDefinition.getBeanName(), contextDefinition.getBeanDefinition()); BeanDefinitionHolder contextHolder = ScopedProxyUtils.createScopedProxy(contextDefinition, parserContext.getRegistry(), false); scopedContext.addConstructorArgValue(requestHolder.getBeanDefinition()); BeanDefinitionBuilder bareContext = BeanDefinitionBuilder.genericBeanDefinition(DefaultOAuth2ClientContext.class); BeanDefinitionBuilder context = BeanDefinitionBuilder.genericBeanDefinition(OAuth2ClientContextFactoryBean.class); context.addPropertyValue("scopedContext", contextHolder.getBeanDefinition()); context.addPropertyValue("bareContext", bareContext.getBeanDefinition()); context.addPropertyReference("resource", element.getAttribute("resource")); builder.addConstructorArgValue(context.getBeanDefinition()); if (StringUtils.hasText(accessTokenProviderRef)) { builder.addPropertyReference("accessTokenProvider", accessTokenProviderRef); } parserContext.getDelegate().parsePropertyElements(element, builder.getBeanDefinition()); }
Example 50
Project: winlet-master File: DaoScanner.java View source code |
/** * Calls the parent search that will search and register all the candidates. * Then the registered objects are post processed to set them as * MapperFactoryBeans */ @Override public Set<BeanDefinitionHolder> doScan(String... basePackages) { Set<BeanDefinitionHolder> beanDefinitions = super.doScan(basePackages); if (beanDefinitions.isEmpty()) { logger.warn("No DaoService was found in '" + Arrays.toString(basePackages) + "' package. Please check your configuration."); } else { for (BeanDefinitionHolder holder : beanDefinitions) { GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition(); if (logger.isDebugEnabled()) { logger.debug("Creating DaoFactoryBean with name '" + holder.getBeanName() + "' and '" + definition.getBeanClassName() + "' daoInterface"); } // the mapper interface is the original class of the bean // but, the actual class of the bean is HibernateDaoFactoryBean definition.getPropertyValues().add("daoInterface", definition.getBeanClassName()); definition.getPropertyValues().add("funcs", functions); definition.getPropertyValues().add("entityManager", entityManager); definition.getPropertyValues().add("sessionFactory", sessionFactory); definition.setBeanClass(DaoFactoryBean.class); definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); } } return beanDefinitions; }
Example 51
Project: jboss-seam-2.3.0.Final-Hibernate.3-master File: SeamNamespaceHandler.java View source code |
/** * @see org.springframework.beans.factory.xml.BeanDefinitionDecorator#decorate(org.w3c.dom.Node, * org.springframework.beans.factory.config.BeanDefinitionHolder, * org.springframework.beans.factory.xml.ParserContext) */ public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { // doesn't already exist if (!parserContext.getRegistry().containsBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME)) { Class cls; try { cls = ClassUtils.forName(SEAM_COMPONENT_POST_PROCESSOR); } catch (ClassNotFoundException e) { throw new IllegalStateException("Unable to load class '" + SEAM_COMPONENT_POST_PROCESSOR + "' make sure you have the jboss-seam-spring.jar in your classpath.", e); } RootBeanDefinition beanDefinition = new RootBeanDefinition(cls); beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); beanDefinition.getPropertyValues().addPropertyValue("order", Ordered.LOWEST_PRECEDENCE); parserContext.getRegistry().registerBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME, beanDefinition); } // get the optional beanClass String beanClassName = definition.getBeanDefinition().getBeanClassName(); if (node.getAttributes().getNamedItem(BEAN_CLASS_ATTR) != null) { beanClassName = node.getAttributes().getNamedItem(BEAN_CLASS_ATTR).getNodeValue(); } String beanName = definition.getBeanName(); // get the name of the seam component to create String seamName = beanName; if (node.getAttributes().getNamedItem(SEAM_NAME_ATTR) != null) { seamName = node.getAttributes().getNamedItem(SEAM_NAME_ATTR).getNodeValue(); } // get the name of the spring bean to use String springName = beanName; if (node.getAttributes().getNamedItem(SPRING_NAME_ATTR) != null) { springName = node.getAttributes().getNamedItem(SPRING_NAME_ATTR).getNodeValue(); } // get the interception type to use Boolean interceptionType = null; if (node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR) != null) { interceptionType = Boolean.valueOf(node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR).getNodeValue()); } // get the requested scope ScopeType scope = ScopeType.valueOf(node.getAttributes().getNamedItem("scope").getNodeValue()); if (scope != ScopeType.STATELESS && !BeanDefinition.SCOPE_PROTOTYPE.equals(definition.getBeanDefinition().getScope())) { throw new IllegalStateException("The spring bean scope must be prototype to use a seam scope other than STATELESS."); } if (!(parserContext.getRegistry() instanceof BeanFactory)) { throw new RuntimeException("For some reason your registry is not a BeanFactory"); } SpringComponent.addSpringComponent(seamName, springName, beanClassName, scope, (BeanFactory) parserContext.getRegistry(), interceptionType); if (node.getAttributes().getNamedItem(AUTO_CREATE_ATTR) != null) { if (Boolean.valueOf(node.getAttributes().getNamedItem(AUTO_CREATE_ATTR).getNodeValue())) { Init.instance().addAutocreateVariable(seamName); } } return definition; }
Example 52
Project: seam-2.2-master File: SeamNamespaceHandler.java View source code |
/** * @see org.springframework.beans.factory.xml.BeanDefinitionDecorator#decorate(org.w3c.dom.Node, * org.springframework.beans.factory.config.BeanDefinitionHolder, * org.springframework.beans.factory.xml.ParserContext) */ public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { // doesn't already exist if (!parserContext.getRegistry().containsBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME)) { Class cls; try { cls = ClassUtils.forName(SEAM_COMPONENT_POST_PROCESSOR); } catch (ClassNotFoundException e) { throw new IllegalStateException("Unable to load class '" + SEAM_COMPONENT_POST_PROCESSOR + "' make sure you have the jboss-seam-spring.jar in your classpath.", e); } RootBeanDefinition beanDefinition = new RootBeanDefinition(cls); beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); beanDefinition.getPropertyValues().addPropertyValue("order", Ordered.LOWEST_PRECEDENCE); parserContext.getRegistry().registerBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME, beanDefinition); } // get the optional beanClass String beanClassName = definition.getBeanDefinition().getBeanClassName(); if (node.getAttributes().getNamedItem(BEAN_CLASS_ATTR) != null) { beanClassName = node.getAttributes().getNamedItem(BEAN_CLASS_ATTR).getNodeValue(); } String beanName = definition.getBeanName(); // get the name of the seam component to create String seamName = beanName; if (node.getAttributes().getNamedItem(SEAM_NAME_ATTR) != null) { seamName = node.getAttributes().getNamedItem(SEAM_NAME_ATTR).getNodeValue(); } // get the name of the spring bean to use String springName = beanName; if (node.getAttributes().getNamedItem(SPRING_NAME_ATTR) != null) { springName = node.getAttributes().getNamedItem(SPRING_NAME_ATTR).getNodeValue(); } // get the interception type to use Boolean interceptionType = null; if (node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR) != null) { interceptionType = Boolean.valueOf(node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR).getNodeValue()); } // get the requested scope ScopeType scope = ScopeType.valueOf(node.getAttributes().getNamedItem("scope").getNodeValue()); if (scope != ScopeType.STATELESS && !BeanDefinition.SCOPE_PROTOTYPE.equals(definition.getBeanDefinition().getScope())) { throw new IllegalStateException("The spring bean scope must be prototype to use a seam scope other than STATELESS."); } if (!(parserContext.getRegistry() instanceof BeanFactory)) { throw new RuntimeException("For some reason your registry is not a BeanFactory"); } SpringComponent.addSpringComponent(seamName, springName, beanClassName, scope, (BeanFactory) parserContext.getRegistry(), interceptionType); if (node.getAttributes().getNamedItem(AUTO_CREATE_ATTR) != null) { if (Boolean.valueOf(node.getAttributes().getNamedItem(AUTO_CREATE_ATTR).getNodeValue())) { Init.instance().addAutocreateVariable(seamName); } } return definition; }
Example 53
Project: seam-revisited-master File: SeamNamespaceHandler.java View source code |
/** * @see org.springframework.beans.factory.xml.BeanDefinitionDecorator#decorate(org.w3c.dom.Node, * org.springframework.beans.factory.config.BeanDefinitionHolder, * org.springframework.beans.factory.xml.ParserContext) */ public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { // doesn't already exist if (!parserContext.getRegistry().containsBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME)) { Class cls; try { cls = ClassUtils.forName(SEAM_COMPONENT_POST_PROCESSOR); } catch (ClassNotFoundException e) { throw new IllegalStateException("Unable to load class '" + SEAM_COMPONENT_POST_PROCESSOR + "' make sure you have the jboss-seam-spring.jar in your classpath.", e); } RootBeanDefinition beanDefinition = new RootBeanDefinition(cls); beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); beanDefinition.getPropertyValues().addPropertyValue("order", Ordered.LOWEST_PRECEDENCE); parserContext.getRegistry().registerBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME, beanDefinition); } // get the optional beanClass String beanClassName = definition.getBeanDefinition().getBeanClassName(); if (node.getAttributes().getNamedItem(BEAN_CLASS_ATTR) != null) { beanClassName = node.getAttributes().getNamedItem(BEAN_CLASS_ATTR).getNodeValue(); } String beanName = definition.getBeanName(); // get the name of the seam component to create String seamName = beanName; if (node.getAttributes().getNamedItem(SEAM_NAME_ATTR) != null) { seamName = node.getAttributes().getNamedItem(SEAM_NAME_ATTR).getNodeValue(); } // get the name of the spring bean to use String springName = beanName; if (node.getAttributes().getNamedItem(SPRING_NAME_ATTR) != null) { springName = node.getAttributes().getNamedItem(SPRING_NAME_ATTR).getNodeValue(); } // get the interception type to use Boolean interceptionType = null; if (node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR) != null) { interceptionType = Boolean.valueOf(node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR).getNodeValue()); } // get the requested scope ScopeType scope = ScopeType.valueOf(node.getAttributes().getNamedItem("scope").getNodeValue()); if (scope != ScopeType.STATELESS && !BeanDefinition.SCOPE_PROTOTYPE.equals(definition.getBeanDefinition().getScope())) { throw new IllegalStateException("The spring bean scope must be prototype to use a seam scope other than STATELESS."); } if (!(parserContext.getRegistry() instanceof BeanFactory)) { throw new RuntimeException("For some reason your registry is not a BeanFactory"); } SpringComponent.addSpringComponent(seamName, springName, beanClassName, scope, (BeanFactory) parserContext.getRegistry(), interceptionType); if (node.getAttributes().getNamedItem(AUTO_CREATE_ATTR) != null) { if (Boolean.valueOf(node.getAttributes().getNamedItem(AUTO_CREATE_ATTR).getNodeValue())) { Init.instance().addAutocreateVariable(seamName); } } return definition; }
Example 54
Project: seam2jsf2-master File: SeamNamespaceHandler.java View source code |
/** * @see org.springframework.beans.factory.xml.BeanDefinitionDecorator#decorate(org.w3c.dom.Node, * org.springframework.beans.factory.config.BeanDefinitionHolder, * org.springframework.beans.factory.xml.ParserContext) */ public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder definition, ParserContext parserContext) { // doesn't already exist if (!parserContext.getRegistry().containsBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME)) { Class cls; try { cls = ClassUtils.forName(SEAM_COMPONENT_POST_PROCESSOR); } catch (ClassNotFoundException e) { throw new IllegalStateException("Unable to load class '" + SEAM_COMPONENT_POST_PROCESSOR + "' make sure you have the jboss-seam-spring.jar in your classpath.", e); } RootBeanDefinition beanDefinition = new RootBeanDefinition(cls); beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); beanDefinition.getPropertyValues().addPropertyValue("order", Ordered.LOWEST_PRECEDENCE); parserContext.getRegistry().registerBeanDefinition(SEAM_COMPONENT_POST_PROCESSOR_BEAN_NAME, beanDefinition); } // get the optional beanClass String beanClassName = definition.getBeanDefinition().getBeanClassName(); if (node.getAttributes().getNamedItem(BEAN_CLASS_ATTR) != null) { beanClassName = node.getAttributes().getNamedItem(BEAN_CLASS_ATTR).getNodeValue(); } String beanName = definition.getBeanName(); // get the name of the seam component to create String seamName = beanName; if (node.getAttributes().getNamedItem(SEAM_NAME_ATTR) != null) { seamName = node.getAttributes().getNamedItem(SEAM_NAME_ATTR).getNodeValue(); } // get the name of the spring bean to use String springName = beanName; if (node.getAttributes().getNamedItem(SPRING_NAME_ATTR) != null) { springName = node.getAttributes().getNamedItem(SPRING_NAME_ATTR).getNodeValue(); } // get the interception type to use Boolean interceptionType = null; if (node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR) != null) { interceptionType = Boolean.valueOf(node.getAttributes().getNamedItem(INTERCEPT_TYPE_ATTR).getNodeValue()); } // get the requested scope ScopeType scope = ScopeType.valueOf(node.getAttributes().getNamedItem("scope").getNodeValue()); if (scope != ScopeType.STATELESS && !BeanDefinition.SCOPE_PROTOTYPE.equals(definition.getBeanDefinition().getScope())) { throw new IllegalStateException("The spring bean scope must be prototype to use a seam scope other than STATELESS."); } if (!(parserContext.getRegistry() instanceof BeanFactory)) { throw new RuntimeException("For some reason your registry is not a BeanFactory"); } SpringComponent.addSpringComponent(seamName, springName, beanClassName, scope, (BeanFactory) parserContext.getRegistry(), interceptionType); if (node.getAttributes().getNamedItem(AUTO_CREATE_ATTR) != null) { if (Boolean.valueOf(node.getAttributes().getNamedItem(AUTO_CREATE_ATTR).getNodeValue())) { Init.instance().addAutocreateVariable(seamName); } } return definition; }
Example 55
Project: arondor-common-reflection-master File: BeanPropertyParser.java View source code |
public ElementConfiguration parseProperty(Object value) { LOGGER.debug("value : " + value); if (value instanceof TypedStringValue) { TypedStringValue stringValue = (TypedStringValue) value; if (stringValue.getTargetTypeName() != null) { return getEnumObjectConfiguration(stringValue); } else { PrimitiveConfiguration primitiveConfiguration = objectConfigurationFactory.createPrimitiveConfiguration(); if (useSPEL(stringValue)) { ExpressionParser parser = new SpelExpressionParser(); String expAsStringWithToken = stringValue.getValue().trim(); String expAsString = expAsStringWithToken.substring(2, expAsStringWithToken.length() - 1).trim(); LOGGER.trace("This property is a SPEL expression: " + expAsString); // String regex = "systemProperties\\['([^\\s]+)'\\]"; Expression exp = parser.parseExpression(expAsString); StandardEvaluationContext sec = null; if (sec == null) { sec = new StandardEvaluationContext(); sec.addPropertyAccessor(new EnvironmentAccessor()); sec.addPropertyAccessor(new BeanExpressionContextAccessor()); sec.addPropertyAccessor(new BeanFactoryAccessor()); sec.addPropertyAccessor(new MapAccessor()); } primitiveConfiguration.setValue(String.valueOf(exp.getValue())); } else { LOGGER.trace("This property is NOT a SPEL expression: " + stringValue.getValue()); primitiveConfiguration.setValue(stringValue.getValue()); } return primitiveConfiguration; } } else if (value instanceof RuntimeBeanReference) { RuntimeBeanReference beanReference = (RuntimeBeanReference) value; ReferenceConfiguration referenceConfiguration = objectConfigurationFactory.createReferenceConfiguration(); referenceConfiguration.setReferenceName(beanReference.getBeanName()); return referenceConfiguration; } else if (value instanceof ManagedList<?>) { return parseValueList((ManagedList<?>) value); } else if (value instanceof ManagedMap<?, ?>) { return parseValueMap((ManagedMap<?, ?>) value); } else if (value instanceof BeanDefinitionHolder) { BeanDefinitionHolder beanDefinitionHolder = (BeanDefinitionHolder) value; return parseBeanDefinition(beanDefinitionHolder.getBeanDefinition()); } else { throw new UnsupportedOperationException("The type of property value is not suppported : " + value + " (class : " + value.getClass().getName() + ")"); } }
Example 56
Project: dwr-master File: DwrNamespaceHandler.java View source code |
/** * Registers a new {@link org.directwebremoting.extend.Creator} in the registry using name <code>javascript</code>. * @param registry The definition of all the Beans * @param javascript The name of the bean in the registry. * @param creatorConfig * @param params * @param children The node list to check for nested elements */ @SuppressWarnings("unchecked") protected void registerCreator(BeanDefinitionRegistry registry, String javascript, BeanDefinitionBuilder creatorConfig, Map<String, String> params, NodeList children) { registerSpringConfiguratorIfNecessary(registry); List<String> includes = new ArrayList<String>(); creatorConfig.addPropertyValue("includes", includes); List<String> excludes = new ArrayList<String>(); creatorConfig.addPropertyValue("excludes", excludes); Map<String, List<String>> auth = new HashMap<String, List<String>>(); creatorConfig.addPropertyValue("auth", auth); // check to see if there are any nested elements here for (int i = 0; i < children.getLength(); i++) { Node node = children.item(i); if (node.getNodeType() == Node.TEXT_NODE || node.getNodeType() == Node.COMMENT_NODE) { continue; } Element child = (Element) node; if ("dwr:latencyfilter".equals(node.getNodeName())) { BeanDefinitionBuilder beanFilter = BeanDefinitionBuilder.rootBeanDefinition(ExtraLatencyAjaxFilter.class); beanFilter.addPropertyValue("delay", child.getAttribute("delay")); BeanDefinitionHolder holder2 = new BeanDefinitionHolder(beanFilter.getBeanDefinition(), "__latencyFilter_" + javascript); BeanDefinitionReaderUtils.registerBeanDefinition(holder2, registry); ManagedList filterList = new ManagedList(); filterList.add(new RuntimeBeanReference("__latencyFilter_" + javascript)); creatorConfig.addPropertyValue("filters", filterList); } else if ("dwr:include".equals(node.getNodeName())) { includes.add(child.getAttribute("method")); } else if ("dwr:exclude".equals(node.getNodeName())) { excludes.add(child.getAttribute("method")); } else if ("dwr:auth".equals(node.getNodeName())) { String method = child.getAttribute("method"); if (auth.get(method) == null) { auth.put(method, new ArrayList<String>()); } auth.get(method).add(child.getAttribute("role")); } else if ("dwr:convert".equals(node.getNodeName())) { Element element = (Element) node; String type = element.getAttribute("type"); String className = element.getAttribute("class"); ConverterConfig converterConfig = new ConverterConfig(); converterConfig.setType(type); parseConverterSettings(converterConfig, element); lookupConverters(registry).put(className, converterConfig); } else if ("dwr:filter".equals(node.getNodeName())) { Element element = (Element) node; String filterClass = element.getAttribute("class"); List<Element> filterParamElements = DomUtils.getChildElementsByTagName(element, "param"); BeanDefinitionBuilder beanFilter; try { beanFilter = BeanDefinitionBuilder.rootBeanDefinition(ClassUtils.forName(filterClass)); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("DWR filter class '" + filterClass + "' was not found. " + "Check the class name specified in <dwr:filter class=\"" + filterClass + "\" /> exists"); } for (Element filterParamElement : filterParamElements) { beanFilter.addPropertyValue(filterParamElement.getAttribute("name"), filterParamElement.getAttribute("value")); } BeanDefinitionHolder holder2 = new BeanDefinitionHolder(beanFilter.getBeanDefinition(), "__filter_" + filterClass + "_" + javascript); BeanDefinitionReaderUtils.registerBeanDefinition(holder2, registry); ManagedList filterList = new ManagedList(); filterList.add(new RuntimeBeanReference("__filter_" + filterClass + "_" + javascript)); creatorConfig.addPropertyValue("filters", filterList); } else if ("dwr:param".equals(node.getNodeName())) { Element element = (Element) node; String name = element.getAttribute("name"); String value = element.getAttribute("value"); params.put(name, value); } else { throw new RuntimeException("an unknown dwr:remote sub node was fouund: " + node.getNodeName()); } } creatorConfig.addPropertyValue("params", params); String creatorConfigName = "__" + javascript; BeanDefinitionHolder holder3 = new BeanDefinitionHolder(creatorConfig.getBeanDefinition(), creatorConfigName); BeanDefinitionReaderUtils.registerBeanDefinition(holder3, registry); lookupCreators(registry).put(javascript, new RuntimeBeanReference(creatorConfigName)); }
Example 57
Project: geda-genericdto-master File: XmlDrivenGeDABeanDefinitionParser.java View source code |
public BeanDefinitionHolder decorate(final Node node, final BeanDefinitionHolder definition, final ParserContext parserContext) { final BeanDefinition beanDefinition = definition.getBeanDefinition(); final String dtoSupportProperty = node.getAttributes().getNamedItem(XSD_ATTR__PROPERTY).getNodeValue(); final MutablePropertyValues properties = beanDefinition.getPropertyValues(); properties.add(dtoSupportProperty, new RuntimeBeanReference(dtoSupportBeanName)); return definition; }
Example 58
Project: hazelcast-archive-master File: HazelcastConfigBeanDefinitionParser.java View source code |
protected BeanDefinitionBuilder createBeanBuilder(final Class clazz, final String id) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(clazz); final AbstractBeanDefinition beanDefinition = builder.getBeanDefinition(); BeanDefinitionHolder holder = new BeanDefinitionHolder(beanDefinition, nextId(id)); BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry()); return builder; }
Example 59
Project: java-buildpack-auto-reconfiguration-master File: StandardPropertyAugmenterTest.java View source code |
@Test public void existingBeanDefinitionHolder() { BeanDefinitionHolder bdh = new BeanDefinitionHolder(this.beanDefinition, ""); this.propertyValues.addPropertyValue(this.key, bdh); Map<String, String> m = new HashMap<String, String>(); m.put("additional-key", "additional-value"); this.propertyValues.addPropertyValue("sourceMap", m); this.propertyAugmenter.augment(this.beanFactory, this.beanClass, this.key, this.additionalProperties); assertTrue(this.propertyValues.contains(this.key)); assertContainsKey("additional-key"); }
Example 60
Project: MULE-master File: DefaultListableBeanFactory.java View source code |
/**
* Determine whether the specified bean definition qualifies as an autowire candidate, to be injected into other beans which
* declare a dependency of matching type.
*
* @param beanName the name of the bean definition to check
* @param mbd the merged bean definition to check
* @param descriptor the descriptor of the dependency to resolve
* @param resolver the AutowireCandidateResolver to use for the actual resolution algorithm
* @return whether the bean should be considered as autowire candidate
*/
protected boolean isAutowireCandidate(String beanName, RootBeanDefinition mbd, DependencyDescriptor descriptor, AutowireCandidateResolver resolver) {
String beanDefinitionName = BeanFactoryUtils.transformedBeanName(beanName);
resolveBeanClass(mbd, beanDefinitionName);
if (mbd.isFactoryMethodUnique) {
boolean resolve;
synchronized (mbd.constructorArgumentLock) {
resolve = (mbd.resolvedConstructorOrFactoryMethod == null);
}
if (resolve) {
new ConstructorResolver(this).resolveFactoryMethodIfPossible(mbd);
}
}
return resolver.isAutowireCandidate(new BeanDefinitionHolder(mbd, beanName, getAliases(beanDefinitionName)), descriptor);
}
Example 61
Project: spring-batch-master File: ChunkElementParser.java View source code |
/**
* Handle the <reader/>, <processor/>, or <writer/> that
* is defined within the item handler.
*/
private void handleItemHandlerElement(AbstractBeanDefinition enclosing, String propertyName, String adapterClassName, MutablePropertyValues propertyValues, Element element, ParserContext parserContext) {
List<Element> beanElements = DomUtils.getChildElementsByTagName(element, BEAN_ELE);
List<Element> refElements = DomUtils.getChildElementsByTagName(element, REF_ELE);
if (beanElements.size() + refElements.size() != 1) {
parserContext.getReaderContext().error("The <" + element.getNodeName() + "/> must have exactly one of either a <" + BEAN_ELE + "/> element or a <" + REF_ELE + "/> element.", element);
} else if (beanElements.size() == 1) {
Element beanElement = beanElements.get(0);
BeanDefinitionHolder beanDefinitionHolder = parserContext.getDelegate().parseBeanDefinitionElement(beanElement, enclosing);
parserContext.getDelegate().decorateBeanDefinitionIfRequired(beanElement, beanDefinitionHolder);
propertyValues.addPropertyValue(propertyName, beanDefinitionHolder);
} else if (refElements.size() == 1) {
propertyValues.addPropertyValue(propertyName, parserContext.getDelegate().parsePropertySubElement(refElements.get(0), null));
}
handleAdapterMethodAttribute(propertyName, adapterClassName, propertyValues, element);
}
Example 62
Project: vraptor-master File: SpringRegistry.java View source code |
private void registerOn(Class<?> type, boolean customComponent) { AnnotatedGenericBeanDefinition definition = new AnnotatedGenericBeanDefinition(type); if (!customComponent) { definition.setLazyInit(true); } definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_NO); definition.setPrimary(customComponent); definition.setRole(customComponent ? BeanDefinition.ROLE_APPLICATION : BeanDefinition.ROLE_INFRASTRUCTURE); String name = beanNameGenerator.generateBeanName(definition, (BeanDefinitionRegistry) beanFactory); BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(definition, name); ScopeMetadata scopeMetadata = scopeResolver.resolveScopeMetadata(definition); definitionHolder = applyScopeOn(definitionHolder, scopeMetadata); BeanDefinitionReaderUtils.registerBeanDefinition(definitionHolder, (BeanDefinitionRegistry) beanFactory); }
Example 63
Project: zstack-master File: PluginDefinitionParser.java View source code |
@Override public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder holder, ParserContext ctx) { if (!ctx.getRegistry().containsBeanDefinition(PluginRegistry.PLUGIN_REGISTRY_BEAN_NAME)) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(PluginRegistryImpl.class); ctx.getRegistry().registerBeanDefinition(PluginRegistry.PLUGIN_REGISTRY_BEAN_NAME, builder.getBeanDefinition()); logger.debug("No BeanDefinition for PluginRegistry found, create and register one"); } Element root = (Element) node; List<Element> all = new ArrayList<Element>(6); all.add(root); List<Element> children = DomUtils.getChildElementsByTagName(root, new String[] { EXTENSION_NODE }); all.addAll(children); List<PluginExtension> exts = parsePlugin(all, holder.getBeanDefinition(), holder.getBeanName()); if (!exts.isEmpty()) { PluginExtension ext = exts.get(0); BeanDefinition registryBean = ctx.getRegistry().getBeanDefinition(PluginRegistry.PLUGIN_REGISTRY_BEAN_NAME); MutablePropertyValues props = registryBean.getPropertyValues(); PropertyValue prop = props.getPropertyValue(PluginRegistry.PLUGIN_REGISTRYIMPL_PLUGINS_FIELD_NAME); if (prop == null) { Map<String, List<PluginExtension>> extensions = new HashMap<String, List<PluginExtension>>(1); extensions.put(ext.getBeanClassName(), exts); prop = new PropertyValue(PluginRegistry.PLUGIN_REGISTRYIMPL_PLUGINS_FIELD_NAME, extensions); logger.debug("No 'extensions' property found in PluginRegistry bean definition, create a new one"); props.addPropertyValue(prop); } else { Map<String, List<PluginExtension>> extensions = (Map<String, List<PluginExtension>>) prop.getValue(); List<PluginExtension> oexts = extensions.get(ext.getBeanClassName()); if (oexts == null) { oexts = new ArrayList<PluginExtension>(exts.size()); extensions.put(ext.getBeanClassName(), oexts); } for (PluginExtension e : exts) { if (oexts.contains(e)) { throw new CloudRuntimeException(String.format("duplicated extension declaration[interfaceRef:%s, beanName:%s, beanClass:%s]", e.getReferenceInterface(), ext.getBeanName(), ext.getBeanClassName())); } } oexts.addAll(exts); } logger.debug(String.format("Add extensions declared by bean[name=%s, class=%s] to 'extensions' property of PluginRegistry bean definition", ext.getBeanName(), ext.getBeanClassName())); } return holder; }
Example 64
Project: fabric8-master File: AbstractServiceRegistar.java View source code |
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { for (Method method : REFLECTIONS.getMethodsAnnotatedWith(Factory.class)) { String methodName = method.getName(); Class sourceType = getSourceType(method); Class targetType = method.getReturnType(); Class beanType = method.getDeclaringClass(); BeanDefinitionHolder holder = createConverterBean(beanType, methodName, sourceType, targetType); BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); } for (Field field : REFLECTIONS.getFieldsAnnotatedWith(ServiceName.class)) { Class targetClass = field.getType(); Alias alias = field.getAnnotation(Alias.class); ServiceName name = field.getAnnotation(ServiceName.class); PortName port = field.getAnnotation(PortName.class); Protocol protocol = field.getAnnotation(Protocol.class); External external = field.getAnnotation(External.class); String serviceName = name != null ? name.value() : null; //We copy the service since we are going to add properties to it. Service serviceInstance = new ServiceBuilder(getService(serviceName)).build(); String servicePort = port != null ? port.value() : null; String serviceProtocol = protocol != null ? protocol.value() : DEFAULT_PROTOCOL; Boolean serviceExternal = external != null && external.value(); String serviceAlias = alias != null ? alias.value() : createAlias(serviceName, targetClass, serviceProtocol, servicePort, serviceExternal); //Add annotation info as additional properties serviceInstance.getAdditionalProperties().put(ALIAS, serviceAlias); serviceInstance.getAdditionalProperties().put(PROTOCOL, serviceProtocol); serviceInstance.getAdditionalProperties().put(EXTERNAL, serviceExternal); //We don't want to add a fallback value to the attributes. if (port != null) { serviceInstance.getAdditionalProperties().put(PORT, servicePort); } BeanDefinitionHolder holder = createServiceDefinition(serviceInstance, serviceAlias, serviceProtocol, servicePort, targetClass); BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); } }
Example 65
Project: jena-sparql-api-master File: FactoryBeanStepSparqlPipe.java View source code |
// @Override // public Step createInstance() throws Exception { // // final Predicate<Quad> predicate = filter == null ? null : new PredicateQuadExpr(filter); // // ItemReaderQuad reader = new ItemReaderQuad(source, query); // reader.setPageSize(readSize); // // ItemProcessor<? super Quad, ? extends Quad> processor; // if(predicate != null) { // ValidatingItemProcessor<Quad> validatingProcessor = new ValidatingItemProcessor<Quad>(); // validatingProcessor.setValidator(new Validator<Quad>() { // @Override // public void validate(Quad quad) throws ValidationException { // boolean isValid = predicate.apply(quad); // if(!isValid) { // throw new ValidationException("A quad failed validation: " + quad); // } // } // }); // validatingProcessor.setFilter(true); // validatingProcessor.afterPropertiesSet(); // // processor = validatingProcessor; // } else { // processor = new PassThroughItemProcessor<Quad>(); // } // // //ItemProcessor<? super Quad, ? extends Quad> processor = new PassThroughItemProcessor<Quad>(); // ItemWriterQuad writer = new ItemWriterQuad(target, isDelete); // // reader.setPageSize(chunkSize); // // //StepBuilderFactory stepBuilders = batchConfig.stepBuilders(); // StepBuilder stepBuilder = stepBuilders.get(name); // // AbstractTaskletStepBuilder<?> base = stepBuilder // .<Quad, Quad>chunk(chunkSize) // .reader(reader) // .processor(processor) // .writer(writer); // // if(taskExecutor != null) { // base = base.taskExecutor(taskExecutor); // // if(throttle != null) { // base = base.throttleLimit(throttle); // } // } // // Step result = base.build(); // // //// .taskExecutor(taskExecutor) //// .throttleLimit(throttleLimit) //// .build(); // // return result; // } // @Override // public Class<?> getObjectType() { // return Step.class; // } // @StepScope // @Autowired @Override protected Step configureStep(StepBuilder stepBuilder) { DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) ((ConfigurableApplicationContext) ctx).getBeanFactory(); RootBeanDefinition itemReaderBd = new RootBeanDefinition(ItemReaderQuad.class); itemReaderBd.setScope("step"); itemReaderBd.getPropertyValues().add("currentItemCount", "#{ stepExecutionContext[minValue] }").add("maxItemCount", "#{ stepExecutionContext[maxValue] }").add("pageSize", readSize).add("qef", source).add("query", query); String itemReaderName = BeanDefinitionReaderUtils.registerWithGeneratedName(itemReaderBd, beanFactory); BeanDefinitionHolder proxyHolder = ScopedProxyUtils.createScopedProxy(new BeanDefinitionHolder(itemReaderBd, itemReaderName), beanFactory, true); BeanDefinitionReaderUtils.registerBeanDefinition(proxyHolder, beanFactory); String proxyName = proxyHolder.getBeanName(); @SuppressWarnings("unchecked") ItemReader<Quad> reader = (ItemReader<Quad>) beanFactory.getBean(proxyName); //BeanDefinitionHolder proxyHolder = ScopedProxyUtils.createScopedProxy( // ItemReaderQuad tmp = new ItemReaderQuad(source, query); // tmp.setQef(source); // tmp.setQuery(query); // tmp.setPageSize(readSize); // // BeanDefinitionProxyUtils.createScopedProxy(beanFactory, bean, scopeName, propertyToSpel) // BeanDefinitionBuilder.genericBeanDefinition().addPropertyValue(name, value) // tmp.setCurrentItemCount(count); // tmp.getExecutionContextKey(key) // String proxyName = itemReaderName + "-proxy"; // RootBeanDefinition proxyBd = new RootBeanDefinition(ScopedProxyFactoryBean.class); // proxyBd.getPropertyValues() // .add("targetBeanName", itemReaderName); // beanFactory.registerBeanDefinition(proxyName, proxyBd); // SimpleStepFactoryBean x; // RootBeanDefinition stepBd = new RootBeanDefinition(SimpleStepFactoryBean.class); // stepBd.getPropertyValues() // .add("commitInterval", chunkSize) // .add("itemReader", ) // .add("itemProcessor", processor) // .add("writer", writer) // ; //SimpleStepFactoryBean<T, S> // ScopedProxyUtils.createScopedProxy(definition, registry, proxyTargetClass) // beanFactory.registerBeanDefinition(name + "itemReader", itemReaderBd); //Object bean = beanFactory.getBean("mytest"); //Object bean = context.getBean("mytest"); final Predicate<Quad> predicate = filter == null ? null : new PredicateQuadExpr(filter); //ItemReaderQuad reader = new ItemReaderQuad(source, query); //reader.setPageSize(readSize); ItemProcessor<? super Quad, ? extends Quad> processor; if (predicate != null) { ValidatingItemProcessor<Quad> validatingProcessor = new ValidatingItemProcessor<Quad>(); validatingProcessor.setValidator(new ValidatorQuadByPredicate(predicate)); validatingProcessor.setFilter(true); try { validatingProcessor.afterPropertiesSet(); } catch (Exception e) { throw new RuntimeException(e); } processor = validatingProcessor; } else { processor = new PassThroughItemProcessor<Quad>(); } //ItemProcessor<? super Quad, ? extends Quad> processor = new PassThroughItemProcessor<Quad>(); ItemWriterQuad writer = new ItemWriterQuad(target, isDelete); //reader.setPageSize(chunkSize); //SimplePartitioner x Step result = stepBuilder.<Quad, Quad>chunk(chunkSize).reader(reader).processor(processor).writer(writer).build(); if (throttle != null) { Step slaveStep = result; Partitioner partitioner = new PartitionerSparqlSlice(source, query); result = stepBuilder.partitioner(slaveStep).partitioner(name, partitioner).taskExecutor(taskExecutor).gridSize(throttle).build(); //.partitioner(name + "-partitioner", partitioner). } return result; }
Example 66
Project: makereap-master File: Bootstrap.java View source code |
/** * Calls the parent search that will search and register all the candidates. Then the * registered objects are post processed to set them as ShardStrategy. */ @Override protected Set<BeanDefinitionHolder> doScan(String... basePackages) { Set<BeanDefinitionHolder> beanDefinitions = super.doScan(basePackages); // } else { if (init == false) { init(); } // .getBean(ShardReduceStrategyContext.class); for (BeanDefinitionHolder holder : beanDefinitions) { GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition(); if (logger.isDebugEnabled()) { logger.debug("Creating Strategy with name '" + holder.getBeanName() + "' and '" + definition.getBeanClassName() + "'."); } // ShardReduceStrategy reduceStrategy = (ShardReduceStrategy) applicationContext // .getBean(holder.getBeanName()); // ShardedReducer reducer = reduceStrategy.getClass().getAnnotation( // ShardedReducer.class); // // reduceStrategyContext.put(reducer.mapper(), reducer.statements(), // reduceStrategy); } return beanDefinitions; }
Example 67
Project: MybatisSpring2.5.X-master File: ClassPathMapperScanner.java View source code |
/** * Calls the parent search that will search and register all the candidates. * Then the registered objects are post processed to set them as * MapperFactoryBeans */ @Override public Set<BeanDefinitionHolder> doScan(String... basePackages) { Set<BeanDefinitionHolder> beanDefinitions = super.doScan(basePackages); if (beanDefinitions.isEmpty()) { logger.warn("No MyBatis mapper was found in '" + Arrays.toString(basePackages) + "' package. Please check your configuration."); } else { for (BeanDefinitionHolder holder : beanDefinitions) { GenericBeanDefinition definition = (GenericBeanDefinition) holder.getBeanDefinition(); if (logger.isDebugEnabled()) { logger.debug("Creating MapperFactoryBean with name '" + holder.getBeanName() + "' and '" + definition.getBeanClassName() + "' mapperInterface"); } // the mapper interface is the original class of the bean // but, the actual class of the bean is MapperFactoryBean // æ¤å¤„使用addPropertyValue方法,Spring2.5çš„MutablePropertyValues // 没有add(String propertyName, Object propertyValue)方法 definition.getPropertyValues().addPropertyValue("mapperInterface", definition.getBeanClassName()); definition.setBeanClass(MapperFactoryBean.class); definition.getPropertyValues().addPropertyValue("addToConfig", this.addToConfig); boolean explicitFactoryUsed = false; if (StringUtils.hasText(this.sqlSessionFactoryBeanName)) { definition.getPropertyValues().addPropertyValue("sqlSessionFactory", new RuntimeBeanReference(this.sqlSessionFactoryBeanName)); explicitFactoryUsed = true; } else if (this.sqlSessionFactory != null) { definition.getPropertyValues().addPropertyValue("sqlSessionFactory", this.sqlSessionFactory); explicitFactoryUsed = true; } if (StringUtils.hasText(this.sqlSessionTemplateBeanName)) { if (explicitFactoryUsed) { logger.warn("Cannot use both: sqlSessionTemplate and sqlSessionFactory together. sqlSessionFactory is ignored."); } definition.getPropertyValues().addPropertyValue("sqlSessionTemplate", new RuntimeBeanReference(this.sqlSessionTemplateBeanName)); explicitFactoryUsed = true; } else if (this.sqlSessionTemplate != null) { if (explicitFactoryUsed) { logger.warn("Cannot use both: sqlSessionTemplate and sqlSessionFactory together. sqlSessionFactory is ignored."); } definition.getPropertyValues().addPropertyValue("sqlSessionTemplate", this.sqlSessionTemplate); explicitFactoryUsed = true; } if (!explicitFactoryUsed) { if (logger.isDebugEnabled()) { logger.debug("Enabling autowire by type for MapperFactoryBean with name '" + holder.getBeanName() + "'."); } definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); } } } return beanDefinitions; }
Example 68
Project: pigeon-master File: ServiceBeanDefinitionParser.java View source code |
private static void parseMethods(String url, String id, NodeList nodeList, RootBeanDefinition beanDefinition, ParserContext parserContext) { if (nodeList != null && nodeList.getLength() > 0) { ManagedList methods = null; for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node instanceof Element) { Element element = (Element) node; if ("method".equals(node.getNodeName()) || "method".equals(node.getLocalName())) { String methodName = element.getAttribute("name"); if (methodName == null || methodName.length() == 0) { throw new IllegalStateException("<pigeon:method> name attribute == null"); } if (methods == null) { methods = new ManagedList(); } BeanDefinition methodBeanDefinition = parseMethod(url, methodName, ((Element) node), parserContext, ProviderMethodConfig.class, false); String name = id + "." + methodName; BeanDefinitionHolder methodBeanDefinitionHolder = new BeanDefinitionHolder(methodBeanDefinition, name); methods.add(methodBeanDefinitionHolder); } } } if (methods != null) { beanDefinition.getPropertyValues().addPropertyValue("methods", methods); } } }
Example 69
Project: service-proxy-master File: AbstractParser.java View source code |
protected void handleChildElement(Element ele, ParserContext parserContext, BeanDefinitionBuilder builder) { BeanDefinitionParserDelegate delegate = parserContext.getDelegate(); try { Object o = delegate.parsePropertySubElement(ele, builder.getBeanDefinition()); String clazz = null; if (o instanceof BeanDefinitionHolder) { clazz = ((BeanDefinitionHolder) o).getBeanDefinition().getBeanClassName(); } else if (o instanceof RuntimeBeanReference) { clazz = parserContext.getRegistry().getBeanDefinition(((RuntimeBeanReference) o).getBeanName()).getBeanClassName(); } else if (o instanceof RuntimeBeanNameReference) { clazz = parserContext.getRegistry().getBeanDefinition(((RuntimeBeanNameReference) o).getBeanName()).getBeanClassName(); } else { parserContext.getReaderContext().error("Don't know how to get bean class from " + o.getClass(), ele); } handleChildObject(ele, parserContext, builder, Class.forName(clazz), o); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } }
Example 70
Project: spring-boot-master File: TestDatabaseAutoConfiguration.java View source code |
private void process(BeanDefinitionRegistry registry, ConfigurableListableBeanFactory beanFactory) {
BeanDefinitionHolder holder = getDataSourceBeanDefinition(beanFactory);
if (holder != null) {
String beanName = holder.getBeanName();
boolean primary = holder.getBeanDefinition().isPrimary();
logger.info("Replacing '" + beanName + "' DataSource bean with " + (primary ? "primary " : "") + "embedded version");
registry.registerBeanDefinition(beanName, createEmbeddedBeanDefinition(primary));
}
}
Example 71
Project: spring-master File: ClassPathMapperScanner.java View source code |
/** * Calls the parent search that will search and register all the candidates. * Then the registered objects are post processed to set them as * MapperFactoryBeans */ @Override public Set<BeanDefinitionHolder> doScan(String... basePackages) { Set<BeanDefinitionHolder> beanDefinitions = super.doScan(basePackages); if (beanDefinitions.isEmpty()) { LOGGER.warn(() -> "No MyBatis mapper was found in '" + Arrays.toString(basePackages) + "' package. Please check your configuration."); } else { processBeanDefinitions(beanDefinitions); } return beanDefinitions; }
Example 72
Project: spring-social-master File: ProviderConfigurationSupport.java View source code |
private BeanDefinition registerConnectionFactoryLocatorBean(BeanDefinitionRegistry registry) { Class<?> connectionFactoryRegistryClass = isSocialSecurityAvailable() ? org.springframework.social.security.SocialAuthenticationServiceRegistry.class : ConnectionFactoryRegistry.class; if (!registry.containsBeanDefinition(CONNECTION_FACTORY_LOCATOR_ID)) { if (logger.isDebugEnabled()) { logger.debug("Registering ConnectionFactoryLocator bean (" + connectionFactoryRegistryClass.getName() + ")"); } BeanDefinitionHolder connFactoryLocatorBeanDefHolder = new BeanDefinitionHolder(BeanDefinitionBuilder.genericBeanDefinition(connectionFactoryRegistryClass).getBeanDefinition(), CONNECTION_FACTORY_LOCATOR_ID); BeanDefinitionHolder scopedProxy = ScopedProxyUtils.createScopedProxy(connFactoryLocatorBeanDefHolder, registry, false); registry.registerBeanDefinition(scopedProxy.getBeanName(), scopedProxy.getBeanDefinition()); } BeanDefinition connectionFactoryLocatorBD = registry.getBeanDefinition(ScopedProxyUtils.getTargetBeanName(CONNECTION_FACTORY_LOCATOR_ID)); return connectionFactoryLocatorBD; }
Example 73
Project: spring-statemachine-master File: AbstractImportingAnnotationConfiguration.java View source code |
@Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { List<Class<? extends Annotation>> annotationTypes = getAnnotations(); Class<? extends Annotation> namedAnnotation = null; String[] names = null; ScopedProxyMode proxyMode = null; if (annotationTypes != null) { for (Class<? extends Annotation> annotationType : annotationTypes) { AnnotationAttributes attributes = AnnotationAttributes.fromMap(importingClassMetadata.getAnnotationAttributes(annotationType.getName(), false)); if (attributes != null && attributes.containsKey("name")) { names = attributes.getStringArray("name"); namedAnnotation = annotationType; break; } } } // check if Scope annotation is defined and get proxyMode from it AnnotationAttributes scopeAttributes = AnnotationAttributes.fromMap(importingClassMetadata.getAnnotationAttributes(Scope.class.getName(), false)); if (scopeAttributes != null) { proxyMode = scopeAttributes.getEnum("proxyMode"); } BeanDefinition beanDefinition; try { beanDefinition = buildBeanDefinition(importingClassMetadata, namedAnnotation); } catch (Exception e) { throw new RuntimeException("Error with onConfigurers", e); } // implementation didn't return definition so don't continue registration if (beanDefinition == null) { return; } if (ObjectUtils.isEmpty(names)) { // ok, name(s) not given, generate one names = new String[] { beanNameGenerator.generateBeanName(beanDefinition, registry) }; } registry.registerBeanDefinition(names[0], beanDefinition); if (names.length > 1) { for (int i = 1; i < names.length; i++) { registry.registerAlias(names[0], names[i]); } } // wrap in scoped proxy if needed if (proxyMode != null && proxyMode != ScopedProxyMode.DEFAULT && proxyMode != ScopedProxyMode.NO) { BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(beanDefinition, names[0]); BeanDefinitionHolder scopedProxy = null; if (proxyMode == ScopedProxyMode.TARGET_CLASS) { scopedProxy = ScopedProxyUtils.createScopedProxy(definitionHolder, registry, true); } else if (proxyMode == ScopedProxyMode.INTERFACES) { scopedProxy = ScopedProxyUtils.createScopedProxy(definitionHolder, registry, false); } else { throw new IllegalArgumentException("Unknown proxyMode " + proxyMode); } BeanDefinitionReaderUtils.registerBeanDefinition(scopedProxy, registry); } }
Example 74
Project: spring-ws-master File: InterceptorsBeanDefinitionParser.java View source code |
@Override public BeanDefinition parse(Element element, ParserContext parserContext) { CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compDefinition); List<Element> childElements = DomUtils.getChildElements(element); for (Element childElement : childElements) { if ("bean".equals(childElement.getLocalName())) { RootBeanDefinition smartInterceptorDef = createSmartInterceptorDefinition(DelegatingSmartSoapEndpointInterceptor.class, childElement, parserContext); BeanDefinitionHolder interceptorDef = createInterceptorDefinition(parserContext, childElement); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(0, interceptorDef); registerSmartInterceptor(parserContext, smartInterceptorDef); } else if ("ref".equals(childElement.getLocalName())) { RootBeanDefinition smartInterceptorDef = createSmartInterceptorDefinition(DelegatingSmartSoapEndpointInterceptor.class, childElement, parserContext); BeanReference interceptorRef = createInterceptorReference(parserContext, childElement); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(0, interceptorRef); registerSmartInterceptor(parserContext, smartInterceptorDef); } else if ("payloadRoot".equals(childElement.getLocalName())) { List<Element> payloadRootChildren = DomUtils.getChildElements(childElement); for (Element payloadRootChild : payloadRootChildren) { if ("bean".equals(payloadRootChild.getLocalName())) { RootBeanDefinition smartInterceptorDef = createSmartInterceptorDefinition(PayloadRootSmartSoapEndpointInterceptor.class, childElement, parserContext); BeanDefinitionHolder interceptorDef = createInterceptorDefinition(parserContext, payloadRootChild); String namespaceUri = childElement.getAttribute("namespaceUri"); String localPart = childElement.getAttribute("localPart"); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(0, interceptorDef); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(1, namespaceUri); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(2, localPart); registerSmartInterceptor(parserContext, smartInterceptorDef); } else if ("ref".equals(payloadRootChild.getLocalName())) { RootBeanDefinition smartInterceptorDef = createSmartInterceptorDefinition(PayloadRootSmartSoapEndpointInterceptor.class, childElement, parserContext); BeanReference interceptorRef = createInterceptorReference(parserContext, payloadRootChild); String namespaceUri = childElement.getAttribute("namespaceUri"); String localPart = childElement.getAttribute("localPart"); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(0, interceptorRef); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(1, namespaceUri); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(2, localPart); registerSmartInterceptor(parserContext, smartInterceptorDef); } } } else if ("soapAction".equals(childElement.getLocalName())) { List<Element> soapActionChildren = DomUtils.getChildElements(childElement); for (Element soapActionChild : soapActionChildren) { if ("bean".equals(soapActionChild.getLocalName())) { RootBeanDefinition smartInterceptorDef = createSmartInterceptorDefinition(SoapActionSmartEndpointInterceptor.class, childElement, parserContext); BeanDefinitionHolder interceptorDef = createInterceptorDefinition(parserContext, soapActionChild); String soapAction = childElement.getAttribute("value"); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(0, interceptorDef); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(1, soapAction); registerSmartInterceptor(parserContext, smartInterceptorDef); } else if ("ref".equals(soapActionChild.getLocalName())) { RootBeanDefinition smartInterceptorDef = createSmartInterceptorDefinition(SoapActionSmartEndpointInterceptor.class, childElement, parserContext); BeanReference interceptorRef = createInterceptorReference(parserContext, soapActionChild); String soapAction = childElement.getAttribute("value"); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(0, interceptorRef); smartInterceptorDef.getConstructorArgumentValues().addIndexedArgumentValue(1, soapAction); registerSmartInterceptor(parserContext, smartInterceptorDef); } } } } parserContext.popAndRegisterContainingComponent(); return null; }
Example 75
Project: spring-ws-test-master File: MockWsMessageSenderBeanDefinitionParser.java View source code |
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder bean) { Map<?, ?> namespaces = parseNamespaces(element, parserContext, bean); Map<?, ?> discriminators = parseDiscriminators(element, parserContext, bean); Element resourceConfig = DomUtils.getChildElementByTagName(element, "resource-config"); String pathPrefix = resourceConfig.getAttribute("pathPrefix"); String prependUri = resourceConfig.getAttribute("prependUri"); String ignoreWhitespace = resourceConfig.getAttribute("ignoreWhitespace"); BeanDefinitionBuilder templateProcessor = getTemplateProcessor(resourceConfig); bean.addPropertyValue("autowireRequestProcessors", element.getAttribute("autowireRequestProcessors")); BeanDefinitionBuilder expressionResolver = BeanDefinitionBuilder.rootBeanDefinition(XPathExpressionResolver.class); expressionResolver.addPropertyValue("namespaceMap", namespaces); ManagedList requestProcessors = new ManagedList(); BeanDefinitionBuilder controlResourceLookup = BeanDefinitionBuilder.rootBeanDefinition(PayloadRootBasedResourceLookup.class); controlResourceLookup.addPropertyValue("expressionResolver", expressionResolver.getBeanDefinition()); controlResourceLookup.addPropertyValue("discriminators", discriminators); controlResourceLookup.addPropertyValue("pathPrefix", pathPrefix); controlResourceLookup.addPropertyValue("prependUri", prependUri); controlResourceLookup.addPropertyValue("pathSuffix", "request.xml"); controlResourceLookup.addPropertyValue("templateProcessor", templateProcessor.getBeanDefinition()); BeanDefinitionBuilder xmlCompareRequestValidator = BeanDefinitionBuilder.rootBeanDefinition(XmlCompareRequestValidator.class); xmlCompareRequestValidator.addPropertyValue("controlResourceLookup", controlResourceLookup.getBeanDefinition()); xmlCompareRequestValidator.addPropertyValue("ignoreWhitespace", ignoreWhitespace); addRequestProcessor(requestProcessors, xmlCompareRequestValidator); String[] schemas = parseRequestValidationSchemas(element, bean); if (schemas != null) { BeanDefinitionBuilder schemaRequestValidator = BeanDefinitionBuilder.rootBeanDefinition(SchemaRequestValidator.class); schemaRequestValidator.addPropertyValue("schemas", schemas); addRequestProcessor(requestProcessors, schemaRequestValidator); } BeanDefinitionBuilder responseResourceLookup = BeanDefinitionBuilder.rootBeanDefinition(PayloadRootBasedResourceLookup.class); responseResourceLookup.addPropertyValue("expressionResolver", expressionResolver.getBeanDefinition()); responseResourceLookup.addPropertyValue("discriminators", discriminators); responseResourceLookup.addPropertyValue("pathPrefix", pathPrefix); responseResourceLookup.addPropertyValue("prependUri", prependUri); responseResourceLookup.addPropertyValue("pathSuffix", "response.xml"); responseResourceLookup.addPropertyValue("templateProcessor", templateProcessor.getBeanDefinition()); BeanDefinitionBuilder defaultResponseGenerator = BeanDefinitionBuilder.rootBeanDefinition(DefaultResponseGenerator.class); defaultResponseGenerator.addPropertyValue("resourceLookup", responseResourceLookup.getBeanDefinition()); addRequestProcessor(requestProcessors, defaultResponseGenerator); bean.addPropertyValue("requestProcessors", requestProcessors); if (TRUE.equals(element.getAttribute("autoinjectMock"))) { AbstractBeanDefinition injector = BeanDefinitionBuilder.rootBeanDefinition(MockMessageSenderInjector.class).getBeanDefinition(); BeanDefinitionHolder holder = new BeanDefinitionHolder(injector, parserContext.getReaderContext().generateBeanName(injector)); registerBeanDefinition(holder, parserContext.getRegistry()); } bean.addPropertyValue("interceptors", parseInterceptors(element, parserContext, bean)); }
Example 76
Project: aries-master File: BeansNamespaceHandler.java View source code |
private BeanDefinitionHolder parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { BeanDefinitionHolder bdh = null; if (delegate.nodeNameEquals(ele, IMPORT_ELEMENT)) { importBeanDefinitionResource(ele); } else if (delegate.nodeNameEquals(ele, ALIAS_ELEMENT)) { processAliasRegistration(ele); } else if (delegate.nodeNameEquals(ele, BEAN_ELEMENT)) { bdh = processBeanDefinition(ele, delegate); } else if (delegate.nodeNameEquals(ele, NESTED_BEANS_ELEMENT)) { // recurse doRegisterBeanDefinitions(ele); } return bdh; }
Example 77
Project: HotswapAgent-master File: ClassPathBeanDefinitionScannerAgent.java View source code |
/** * Resolve candidate to a bean definition and (re)load in Spring. * Synchronize to avoid parallel bean definition - usually on reload the beans are interrelated * and parallel load will cause concurrent modification exception. * * @param candidate the candidate to reload */ public void defineBean(BeanDefinition candidate) { synchronized (getClass()) { // TODO sychronize on DefaultListableFactory.beanDefinitionMap? ScopeMetadata scopeMetadata = this.scopeMetadataResolver.resolveScopeMetadata(candidate); candidate.setScope(scopeMetadata.getScopeName()); String beanName = this.beanNameGenerator.generateBeanName(candidate, registry); if (candidate instanceof AbstractBeanDefinition) { postProcessBeanDefinition((AbstractBeanDefinition) candidate, beanName); } if (candidate instanceof AnnotatedBeanDefinition) { processCommonDefinitionAnnotations((AnnotatedBeanDefinition) candidate); } removeIfExists(beanName); if (checkCandidate(beanName, candidate)) { BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(candidate, beanName); definitionHolder = applyScopedProxyMode(scopeMetadata, definitionHolder, registry); LOGGER.reload("Registering Spring bean '{}'", beanName); LOGGER.debug("Bean definition '{}'", beanName, candidate); registerBeanDefinition(definitionHolder, registry); DefaultListableBeanFactory bf = maybeRegistryToBeanFactory(); if (bf != null) ResetRequestMappingCaches.reset(bf); freezeConfiguration(); } ProxyReplacer.clearAllProxies(); } }
Example 78
Project: motan-master File: MotanBeanDefinitionParser.java View source code |
@SuppressWarnings({ "rawtypes", "unchecked" })
private static BeanDefinition parse(Element element, ParserContext parserContext, Class<?> beanClass, boolean required) throws ClassNotFoundException {
RootBeanDefinition bd = new RootBeanDefinition();
bd.setBeanClass(beanClass);
// ��许lazy init
bd.setLazyInit(false);
// 如果没有id则按照规则生æˆ?一个id,注册id到contextä¸
String id = element.getAttribute("id");
if ((id == null || id.length() == 0) && required) {
String generatedBeanName = element.getAttribute("name");
if (generatedBeanName == null || generatedBeanName.length() == 0) {
generatedBeanName = element.getAttribute("class");
}
if (generatedBeanName == null || generatedBeanName.length() == 0) {
generatedBeanName = beanClass.getName();
}
id = generatedBeanName;
int counter = 2;
while (parserContext.getRegistry().containsBeanDefinition(id)) {
id = generatedBeanName + (counter++);
}
}
if (id != null && id.length() > 0) {
if (parserContext.getRegistry().containsBeanDefinition(id)) {
throw new IllegalStateException("Duplicate spring bean id " + id);
}
parserContext.getRegistry().registerBeanDefinition(id, bd);
}
bd.getPropertyValues().addPropertyValue("id", id);
if (ProtocolConfig.class.equals(beanClass)) {
MotanNamespaceHandler.protocolDefineNames.add(id);
} else if (RegistryConfig.class.equals(beanClass)) {
MotanNamespaceHandler.registryDefineNames.add(id);
} else if (BasicServiceInterfaceConfig.class.equals(beanClass)) {
MotanNamespaceHandler.basicServiceConfigDefineNames.add(id);
} else if (BasicRefererInterfaceConfig.class.equals(beanClass)) {
MotanNamespaceHandler.basicRefererConfigDefineNames.add(id);
} else if (ServiceConfigBean.class.equals(beanClass)) {
String className = element.getAttribute("class");
if (className != null && className.length() > 0) {
RootBeanDefinition classDefinition = new RootBeanDefinition();
classDefinition.setBeanClass(Class.forName(className, true, Thread.currentThread().getContextClassLoader()));
classDefinition.setLazyInit(false);
parseProperties(element.getChildNodes(), classDefinition);
bd.getPropertyValues().addPropertyValue("ref", new BeanDefinitionHolder(classDefinition, id + "Impl"));
}
}
Set<String> props = new HashSet<String>();
ManagedMap parameters = null;
// 把é…?置文件ä¸çš„å?¯ä»¥set的属性放到bdä¸
for (Method setter : beanClass.getMethods()) {
String name = setter.getName();
// 必须是setXXX
if (name.length() <= 3 || !name.startsWith("set") || !Modifier.isPublic(setter.getModifiers()) || setter.getParameterTypes().length != 1) {
continue;
}
String property = (name.substring(3, 4).toLowerCase() + name.substring(4)).replaceAll("_", "-");
props.add(property);
if ("id".equals(property)) {
bd.getPropertyValues().addPropertyValue("id", id);
continue;
}
String value = element.getAttribute(property);
if ("methods".equals(property)) {
parseMethods(id, element.getChildNodes(), bd, parserContext);
}
if (StringUtils.isBlank(value)) {
continue;
}
value = value.trim();
if (value.length() == 0) {
continue;
}
Object reference;
if ("ref".equals(property)) {
if (parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException("The exported service ref " + value + " must be singleton! Please set the " + value + " bean scope to singleton, eg: <bean id=\"" + value + "\" scope=\"singleton\" ...>");
}
}
reference = new RuntimeBeanReference(value);
} else if ("protocol".equals(property) && !StringUtils.isBlank(value)) {
if (!value.contains(",")) {
reference = new RuntimeBeanReference(value);
} else {
parseMultiRef("protocols", value, bd, parserContext);
reference = null;
}
} else if ("registry".equals(property)) {
parseMultiRef("registries", value, bd, parserContext);
reference = null;
} else if ("basicService".equals(property)) {
reference = new RuntimeBeanReference(value);
} else if ("basicReferer".equals(property)) {
reference = new RuntimeBeanReference(value);
} else if ("extConfig".equals(property)) {
reference = new RuntimeBeanReference(value);
} else {
reference = new TypedStringValue(value);
}
if (reference != null) {
bd.getPropertyValues().addPropertyValue(property, reference);
}
}
if (ProtocolConfig.class.equals(beanClass)) {
// 把剩余的属性放到protocol的parameters里�
NamedNodeMap attributes = element.getAttributes();
int len = attributes.getLength();
for (int i = 0; i < len; i++) {
Node node = attributes.item(i);
String name = node.getLocalName();
if (!props.contains(name)) {
if (parameters == null) {
parameters = new ManagedMap();
}
String value = node.getNodeValue();
parameters.put(name, new TypedStringValue(value, String.class));
}
}
bd.getPropertyValues().addPropertyValue("parameters", parameters);
}
return bd;
}
Example 79
Project: redisson-master File: RedissonNamespaceParserSupport.java View source code |
public BeanComponentDefinition registerBeanDefinition(BeanDefinitionBuilder builder, String id, String[] aliases, ParserContext parserContext) { BeanDefinitionHolder holder = new BeanDefinitionHolder(builder.getBeanDefinition(), id, aliases); BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry()); BeanComponentDefinition componentDefinition = new BeanComponentDefinition(holder); parserContext.registerComponent(componentDefinition); return componentDefinition; }
Example 80
Project: spring-cloud-netflix-master File: FeignClientsRegistrar.java View source code |
private void registerFeignClient(BeanDefinitionRegistry registry, AnnotationMetadata annotationMetadata, Map<String, Object> attributes) { String className = annotationMetadata.getClassName(); BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(FeignClientFactoryBean.class); validate(attributes); definition.addPropertyValue("url", getUrl(attributes)); definition.addPropertyValue("path", getPath(attributes)); String name = getName(attributes); definition.addPropertyValue("name", name); definition.addPropertyValue("type", className); definition.addPropertyValue("decode404", attributes.get("decode404")); definition.addPropertyValue("fallback", attributes.get("fallback")); definition.addPropertyValue("fallbackFactory", attributes.get("fallbackFactory")); definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); String alias = name + "FeignClient"; AbstractBeanDefinition beanDefinition = definition.getBeanDefinition(); // has a default, won't be null boolean primary = (Boolean) attributes.get("primary"); beanDefinition.setPrimary(primary); String qualifier = getQualifier(attributes); if (StringUtils.hasText(qualifier)) { alias = qualifier; } BeanDefinitionHolder holder = new BeanDefinitionHolder(beanDefinition, className, new String[] { alias }); BeanDefinitionReaderUtils.registerBeanDefinition(holder, registry); }
Example 81
Project: spring-hateoas-master File: HypermediaSupportBeanDefinitionRegistrar.java View source code |
/*
* (non-Javadoc)
* @see org.springframework.context.annotation.ImportBeanDefinitionRegistrar#registerBeanDefinitions(org.springframework.core.type.AnnotationMetadata, org.springframework.beans.factory.support.BeanDefinitionRegistry)
*/
@Override
public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) {
linkBuilderBeanDefinitionRegistrar.registerBeanDefinitions(metadata, registry);
Map<String, Object> attributes = metadata.getAnnotationAttributes(EnableHypermediaSupport.class.getName());
Collection<HypermediaType> types = Arrays.asList((HypermediaType[]) attributes.get("type"));
for (HypermediaType type : types) {
if (JSONPATH_PRESENT) {
AbstractBeanDefinition linkDiscovererBeanDefinition = getLinkDiscovererBeanDefinition(type);
registerBeanDefinition(new BeanDefinitionHolder(linkDiscovererBeanDefinition, BeanDefinitionReaderUtils.generateBeanName(linkDiscovererBeanDefinition, registry)), registry);
}
}
if (types.contains(HypermediaType.HAL)) {
if (JACKSON2_PRESENT) {
BeanDefinitionBuilder halQueryMapperBuilder = rootBeanDefinition(ObjectMapper.class);
registerSourcedBeanDefinition(halQueryMapperBuilder, metadata, registry, HAL_OBJECT_MAPPER_BEAN_NAME);
BeanDefinitionBuilder customizerBeanDefinition = rootBeanDefinition(DefaultObjectMapperCustomizer.class);
registerSourcedBeanDefinition(customizerBeanDefinition, metadata, registry);
BeanDefinitionBuilder builder = rootBeanDefinition(Jackson2ModuleRegisteringBeanPostProcessor.class);
registerSourcedBeanDefinition(builder, metadata, registry);
}
}
if (!types.isEmpty()) {
BeanDefinitionBuilder linkDiscoverersRegistryBuilder = BeanDefinitionBuilder.rootBeanDefinition(PluginRegistryFactoryBean.class);
linkDiscoverersRegistryBuilder.addPropertyValue("type", LinkDiscoverer.class);
registerSourcedBeanDefinition(linkDiscoverersRegistryBuilder, metadata, registry, LINK_DISCOVERER_REGISTRY_BEAN_NAME);
BeanDefinitionBuilder linkDiscoverersBuilder = BeanDefinitionBuilder.rootBeanDefinition(LinkDiscoverers.class);
linkDiscoverersBuilder.addConstructorArgReference(LINK_DISCOVERER_REGISTRY_BEAN_NAME);
registerSourcedBeanDefinition(linkDiscoverersBuilder, metadata, registry);
}
registerRelProviderPluginRegistryAndDelegate(registry);
}
Example 82
Project: vcap-java-master File: CloudAutoStagingBeanFactoryPostProcessor.java View source code |
private void processBeanProperties(DefaultListableBeanFactory beanFactory, String beanClassName, String replacementPropertiesName, String propertyKey) { Class<?> beanClass = loadClass(beanClassName); if (beanClass == null) { return; } try { // TODO: Required in Grails case and need to reexamine beanFactory.getBeanDefinition(replacementPropertiesName); } catch (Exception ex) { return; } String[] beanNames = beanFactory.getBeanNamesForType(beanClass); for (String beanName : beanNames) { BeanDefinition beanDefinition = getBeanDefinition(beanFactory, beanName); MutablePropertyValues propertyValues = beanDefinition.getPropertyValues(); PropertyValue originalProperties = propertyValues.getPropertyValue(propertyKey); Properties originalPropertyValue = null; if (originalProperties != null) { Object value = originalProperties.getValue(); if (value instanceof Properties) { originalPropertyValue = (Properties) originalProperties.getValue(); } else if (value instanceof BeanDefinitionHolder) { originalPropertyValue = extractProperties((BeanDefinitionHolder) value); } else if (value instanceof BeanReference) { originalPropertyValue = extractProperties((BeanReference) value, beanFactory); } else if (value instanceof TypedStringValue) { originalPropertyValue = extractProperties((TypedStringValue) value); } else { throw new IllegalStateException("Unable to process property " + originalProperties.getName() + " of " + value.getClass() + " type"); } } else { originalPropertyValue = new ManagedProperties(); } ManagedProperties replacementProperties = loadReplacementPropertyValues(beanFactory, replacementPropertiesName); replacementProperties.setMergeEnabled(true); replacementProperties = (ManagedProperties) replacementProperties.merge(originalPropertyValue); propertyValues.addPropertyValue(new PropertyValue(propertyKey, replacementProperties)); } }
Example 83
Project: convention-bean-factory-master File: ConventionBeanFactory.java View source code |
private void registerBeanByResolvedType(String beanName, Class<?> resolvedType) { if (resolvedType == null) return; final BeanDefinition beanDefinition = getOrCreateBeanDefinition(beanName, resolvedType); BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(beanDefinition, beanName); ScopeMetadata scopeMetadata = this.scopeMetadataResolver.resolveScopeMetadata(beanDefinition); ScopedProxyMode scopedProxyMode = scopeMetadata.getScopedProxyMode(); if (!scopedProxyMode.equals(ScopedProxyMode.NO)) { definitionHolder = ScopedProxyUtils.createScopedProxy(definitionHolder, this, scopedProxyMode.equals(ScopedProxyMode.TARGET_CLASS)); } registerBeanDefinition(beanName, definitionHolder.getBeanDefinition()); }
Example 84
Project: cxf-master File: AbstractBeanDefinitionParser.java View source code |
protected void setFirstChildAsProperty(Element element, ParserContext ctx, BeanDefinitionBuilder bean, String propertyName) {
Element first = getFirstChild(element);
if (first == null) {
throw new IllegalStateException(propertyName + " property must have child elements!");
}
String id;
BeanDefinition child;
if (first.getNamespaceURI().equals(BeanDefinitionParserDelegate.BEANS_NAMESPACE_URI)) {
String name = first.getLocalName();
if ("ref".equals(name)) {
id = first.getAttribute("bean");
if (id == null) {
throw new IllegalStateException("<ref> elements must have a \"bean\" attribute!");
}
bean.addPropertyReference(propertyName, id);
return;
} else if ("bean".equals(name)) {
BeanDefinitionHolder bdh = ctx.getDelegate().parseBeanDefinitionElement(first);
child = bdh.getBeanDefinition();
bean.addPropertyValue(propertyName, child);
return;
} else {
throw new UnsupportedOperationException("Elements with the name " + name + " are not currently " + "supported as sub elements of " + element.getLocalName());
}
}
child = ctx.getDelegate().parseCustomElement(first, bean.getBeanDefinition());
bean.addPropertyValue(propertyName, child);
}
Example 85
Project: dubbo-master File: DubboBeanDefinitionParser.java View source code |
@SuppressWarnings("unchecked")
private static BeanDefinition parse(Element element, ParserContext parserContext, Class<?> beanClass, boolean required) {
RootBeanDefinition beanDefinition = new RootBeanDefinition();
beanDefinition.setBeanClass(beanClass);
beanDefinition.setLazyInit(false);
String id = element.getAttribute("id");
if ((id == null || id.length() == 0) && required) {
String generatedBeanName = element.getAttribute("name");
if (generatedBeanName == null || generatedBeanName.length() == 0) {
if (ProtocolConfig.class.equals(beanClass)) {
generatedBeanName = "dubbo";
} else {
generatedBeanName = element.getAttribute("interface");
}
}
if (generatedBeanName == null || generatedBeanName.length() == 0) {
generatedBeanName = beanClass.getName();
}
id = generatedBeanName;
int counter = 2;
while (parserContext.getRegistry().containsBeanDefinition(id)) {
id = generatedBeanName + (counter++);
}
}
if (id != null && id.length() > 0) {
if (parserContext.getRegistry().containsBeanDefinition(id)) {
throw new IllegalStateException("Duplicate spring bean id " + id);
}
parserContext.getRegistry().registerBeanDefinition(id, beanDefinition);
beanDefinition.getPropertyValues().addPropertyValue("id", id);
}
if (ProtocolConfig.class.equals(beanClass)) {
for (String name : parserContext.getRegistry().getBeanDefinitionNames()) {
BeanDefinition definition = parserContext.getRegistry().getBeanDefinition(name);
PropertyValue property = definition.getPropertyValues().getPropertyValue("protocol");
if (property != null) {
Object value = property.getValue();
if (value instanceof ProtocolConfig && id.equals(((ProtocolConfig) value).getName())) {
definition.getPropertyValues().addPropertyValue("protocol", new RuntimeBeanReference(id));
}
}
}
} else if (ServiceBean.class.equals(beanClass)) {
String className = element.getAttribute("class");
if (className != null && className.length() > 0) {
RootBeanDefinition classDefinition = new RootBeanDefinition();
classDefinition.setBeanClass(ReflectUtils.forName(className));
classDefinition.setLazyInit(false);
parseProperties(element.getChildNodes(), classDefinition);
beanDefinition.getPropertyValues().addPropertyValue("ref", new BeanDefinitionHolder(classDefinition, id + "Impl"));
}
} else if (ProviderConfig.class.equals(beanClass)) {
parseNested(element, parserContext, ServiceBean.class, true, "service", "provider", id, beanDefinition);
} else if (ConsumerConfig.class.equals(beanClass)) {
parseNested(element, parserContext, ReferenceBean.class, false, "reference", "consumer", id, beanDefinition);
}
Set<String> props = new HashSet<String>();
ManagedMap parameters = null;
for (Method setter : beanClass.getMethods()) {
String name = setter.getName();
if (name.length() > 3 && name.startsWith("set") && Modifier.isPublic(setter.getModifiers()) && setter.getParameterTypes().length == 1) {
Class<?> type = setter.getParameterTypes()[0];
String property = StringUtils.camelToSplitName(name.substring(3, 4).toLowerCase() + name.substring(4), "-");
props.add(property);
Method getter = null;
try {
getter = beanClass.getMethod("get" + name.substring(3), new Class<?>[0]);
} catch (NoSuchMethodException e) {
try {
getter = beanClass.getMethod("is" + name.substring(3), new Class<?>[0]);
} catch (NoSuchMethodException e2) {
}
}
if (getter == null || !Modifier.isPublic(getter.getModifiers()) || !type.equals(getter.getReturnType())) {
continue;
}
if ("parameters".equals(property)) {
parameters = parseParameters(element.getChildNodes(), beanDefinition);
} else if ("methods".equals(property)) {
parseMethods(id, element.getChildNodes(), beanDefinition, parserContext);
} else if ("arguments".equals(property)) {
parseArguments(id, element.getChildNodes(), beanDefinition, parserContext);
} else {
String value = element.getAttribute(property);
if (value != null) {
value = value.trim();
if (value.length() > 0) {
if ("registry".equals(property) && RegistryConfig.NO_AVAILABLE.equalsIgnoreCase(value)) {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress(RegistryConfig.NO_AVAILABLE);
beanDefinition.getPropertyValues().addPropertyValue(property, registryConfig);
} else if ("registry".equals(property) && value.indexOf(',') != -1) {
parseMultiRef("registries", value, beanDefinition, parserContext);
} else if ("provider".equals(property) && value.indexOf(',') != -1) {
parseMultiRef("providers", value, beanDefinition, parserContext);
} else if ("protocol".equals(property) && value.indexOf(',') != -1) {
parseMultiRef("protocols", value, beanDefinition, parserContext);
} else {
Object reference;
if (isPrimitive(type)) {
if ("async".equals(property) && "false".equals(value) || "timeout".equals(property) && "0".equals(value) || "delay".equals(property) && "0".equals(value) || "version".equals(property) && "0.0.0".equals(value) || "stat".equals(property) && "-1".equals(value) || "reliable".equals(property) && "false".equals(value)) {
// 兼容旧版本xsdä¸çš„default值
value = null;
}
reference = value;
} else if ("protocol".equals(property) && ExtensionLoader.getExtensionLoader(Protocol.class).hasExtension(value) && (!parserContext.getRegistry().containsBeanDefinition(value) || !ProtocolConfig.class.getName().equals(parserContext.getRegistry().getBeanDefinition(value).getBeanClassName()))) {
if ("dubbo:provider".equals(element.getTagName())) {
logger.warn("Recommended replace <dubbo:provider protocol=\"" + value + "\" ... /> to <dubbo:protocol name=\"" + value + "\" ... />");
}
// 兼容旧版本�置
ProtocolConfig protocol = new ProtocolConfig();
protocol.setName(value);
reference = protocol;
} else if ("monitor".equals(property) && (!parserContext.getRegistry().containsBeanDefinition(value) || !MonitorConfig.class.getName().equals(parserContext.getRegistry().getBeanDefinition(value).getBeanClassName()))) {
// 兼容旧版本�置
reference = convertMonitor(value);
} else if ("onreturn".equals(property)) {
int index = value.lastIndexOf(".");
String returnRef = value.substring(0, index);
String returnMethod = value.substring(index + 1);
reference = new RuntimeBeanReference(returnRef);
beanDefinition.getPropertyValues().addPropertyValue("onreturnMethod", returnMethod);
} else if ("onthrow".equals(property)) {
int index = value.lastIndexOf(".");
String throwRef = value.substring(0, index);
String throwMethod = value.substring(index + 1);
reference = new RuntimeBeanReference(throwRef);
beanDefinition.getPropertyValues().addPropertyValue("onthrowMethod", throwMethod);
} else {
if ("ref".equals(property) && parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException("The exported service ref " + value + " must be singleton! Please set the " + value + " bean scope to singleton, eg: <bean id=\"" + value + "\" scope=\"singleton\" ...>");
}
}
reference = new RuntimeBeanReference(value);
}
beanDefinition.getPropertyValues().addPropertyValue(property, reference);
}
}
}
}
}
}
NamedNodeMap attributes = element.getAttributes();
int len = attributes.getLength();
for (int i = 0; i < len; i++) {
Node node = attributes.item(i);
String name = node.getLocalName();
if (!props.contains(name)) {
if (parameters == null) {
parameters = new ManagedMap();
}
String value = node.getNodeValue();
parameters.put(name, new TypedStringValue(value, String.class));
}
}
if (parameters != null) {
beanDefinition.getPropertyValues().addPropertyValue("parameters", parameters);
}
return beanDefinition;
}
Example 86
Project: Empower-master File: DubboBeanDefinitionParser.java View source code |
@SuppressWarnings("unchecked")
private static BeanDefinition parse(Element element, ParserContext parserContext, Class<?> beanClass, boolean required) {
RootBeanDefinition beanDefinition = new RootBeanDefinition();
beanDefinition.setBeanClass(beanClass);
beanDefinition.setLazyInit(false);
String id = element.getAttribute("id");
if ((id == null || id.length() == 0) && required) {
String generatedBeanName = element.getAttribute("name");
if (generatedBeanName == null || generatedBeanName.length() == 0) {
if (ProtocolConfig.class.equals(beanClass)) {
generatedBeanName = "dubbo";
} else {
generatedBeanName = element.getAttribute("interface");
}
}
if (generatedBeanName == null || generatedBeanName.length() == 0) {
generatedBeanName = beanClass.getName();
}
id = generatedBeanName;
int counter = 2;
while (parserContext.getRegistry().containsBeanDefinition(id)) {
id = generatedBeanName + (counter++);
}
}
if (id != null && id.length() > 0) {
if (parserContext.getRegistry().containsBeanDefinition(id)) {
throw new IllegalStateException("Duplicate spring bean id " + id);
}
parserContext.getRegistry().registerBeanDefinition(id, beanDefinition);
beanDefinition.getPropertyValues().addPropertyValue("id", id);
}
if (ProtocolConfig.class.equals(beanClass)) {
for (String name : parserContext.getRegistry().getBeanDefinitionNames()) {
BeanDefinition definition = parserContext.getRegistry().getBeanDefinition(name);
PropertyValue property = definition.getPropertyValues().getPropertyValue("protocol");
if (property != null) {
Object value = property.getValue();
if (value instanceof ProtocolConfig && id.equals(((ProtocolConfig) value).getName())) {
definition.getPropertyValues().addPropertyValue("protocol", new RuntimeBeanReference(id));
}
}
}
} else if (ServiceBean.class.equals(beanClass)) {
String className = element.getAttribute("class");
if (className != null && className.length() > 0) {
RootBeanDefinition classDefinition = new RootBeanDefinition();
classDefinition.setBeanClass(ReflectUtils.forName(className));
classDefinition.setLazyInit(false);
parseProperties(element.getChildNodes(), classDefinition);
beanDefinition.getPropertyValues().addPropertyValue("ref", new BeanDefinitionHolder(classDefinition, id + "Impl"));
}
} else if (ProviderConfig.class.equals(beanClass)) {
parseNested(element, parserContext, ServiceBean.class, true, "service", "provider", id, beanDefinition);
} else if (ConsumerConfig.class.equals(beanClass)) {
parseNested(element, parserContext, ReferenceBean.class, false, "reference", "consumer", id, beanDefinition);
}
Set<String> props = new HashSet<String>();
ManagedMap parameters = null;
for (Method setter : beanClass.getMethods()) {
String name = setter.getName();
if (name.length() > 3 && name.startsWith("set") && Modifier.isPublic(setter.getModifiers()) && setter.getParameterTypes().length == 1) {
Class<?> type = setter.getParameterTypes()[0];
String property = StringUtils.camelToSplitName(name.substring(3, 4).toLowerCase() + name.substring(4), "-");
props.add(property);
Method getter = null;
try {
getter = beanClass.getMethod("get" + name.substring(3), new Class<?>[0]);
} catch (NoSuchMethodException e) {
try {
getter = beanClass.getMethod("is" + name.substring(3), new Class<?>[0]);
} catch (NoSuchMethodException e2) {
}
}
if (getter == null || !Modifier.isPublic(getter.getModifiers()) || !type.equals(getter.getReturnType())) {
continue;
}
if ("parameters".equals(property)) {
parameters = parseParameters(element.getChildNodes(), beanDefinition);
} else if ("methods".equals(property)) {
parseMethods(id, element.getChildNodes(), beanDefinition, parserContext);
} else if ("arguments".equals(property)) {
parseArguments(id, element.getChildNodes(), beanDefinition, parserContext);
} else {
String value = element.getAttribute(property);
if (value != null) {
value = value.trim();
if (value.length() > 0) {
if ("registry".equals(property) && RegistryConfig.NO_AVAILABLE.equalsIgnoreCase(value)) {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress(RegistryConfig.NO_AVAILABLE);
beanDefinition.getPropertyValues().addPropertyValue(property, registryConfig);
} else if ("registry".equals(property) && value.indexOf(',') != -1) {
parseMultiRef("registries", value, beanDefinition, parserContext);
} else if ("provider".equals(property) && value.indexOf(',') != -1) {
parseMultiRef("providers", value, beanDefinition, parserContext);
} else if ("protocol".equals(property) && value.indexOf(',') != -1) {
parseMultiRef("protocols", value, beanDefinition, parserContext);
} else {
Object reference;
if (isPrimitive(type)) {
if ("async".equals(property) && "false".equals(value) || "timeout".equals(property) && "0".equals(value) || "delay".equals(property) && "0".equals(value) || "version".equals(property) && "0.0.0".equals(value) || "stat".equals(property) && "-1".equals(value) || "reliable".equals(property) && "false".equals(value)) {
// 兼容旧版本xsdä¸çš„default值
value = null;
}
reference = value;
} else if ("protocol".equals(property) && ExtensionLoader.getExtensionLoader(Protocol.class).hasExtension(value) && (!parserContext.getRegistry().containsBeanDefinition(value) || !ProtocolConfig.class.getName().equals(parserContext.getRegistry().getBeanDefinition(value).getBeanClassName()))) {
if ("dubbo:provider".equals(element.getTagName())) {
logger.warn("Recommended replace <dubbo:provider protocol=\"" + value + "\" ... /> to <dubbo:protocol name=\"" + value + "\" ... />");
}
// 兼容旧版本�置
ProtocolConfig protocol = new ProtocolConfig();
protocol.setName(value);
reference = protocol;
} else if ("monitor".equals(property) && (!parserContext.getRegistry().containsBeanDefinition(value) || !MonitorConfig.class.getName().equals(parserContext.getRegistry().getBeanDefinition(value).getBeanClassName()))) {
// 兼容旧版本�置
reference = convertMonitor(value);
} else if ("onreturn".equals(property)) {
int index = value.lastIndexOf(".");
String returnRef = value.substring(0, index);
String returnMethod = value.substring(index + 1);
reference = new RuntimeBeanReference(returnRef);
beanDefinition.getPropertyValues().addPropertyValue("onreturnMethod", returnMethod);
} else if ("onthrow".equals(property)) {
int index = value.lastIndexOf(".");
String throwRef = value.substring(0, index);
String throwMethod = value.substring(index + 1);
reference = new RuntimeBeanReference(throwRef);
beanDefinition.getPropertyValues().addPropertyValue("onthrowMethod", throwMethod);
} else {
if ("ref".equals(property) && parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException("The exported service ref " + value + " must be singleton! Please set the " + value + " bean scope to singleton, eg: <bean id=\"" + value + "\" scope=\"singleton\" ...>");
}
}
reference = new RuntimeBeanReference(value);
}
beanDefinition.getPropertyValues().addPropertyValue(property, reference);
}
}
}
}
}
}
NamedNodeMap attributes = element.getAttributes();
int len = attributes.getLength();
for (int i = 0; i < len; i++) {
Node node = attributes.item(i);
String name = node.getLocalName();
if (!props.contains(name)) {
if (parameters == null) {
parameters = new ManagedMap();
}
String value = node.getNodeValue();
parameters.put(name, new TypedStringValue(value, String.class));
}
}
if (parameters != null) {
beanDefinition.getPropertyValues().addPropertyValue("parameters", parameters);
}
return beanDefinition;
}
Example 87
Project: ignite-master File: IgniteSpringHelperImpl.java View source code |
/** * @param def Registered BeanDefinition. * @throws BeansException in case of errors. */ private void processNested(BeanDefinition def) throws BeansException { Iterator<PropertyValue> iterVals = def.getPropertyValues().getPropertyValueList().iterator(); while (iterVals.hasNext()) { PropertyValue val = iterVals.next(); if (excludedPropsList.contains(val.getName())) { iterVals.remove(); continue; } if (val.getValue() instanceof Iterable) { Iterator iterNested = ((Iterable) val.getValue()).iterator(); while (iterNested.hasNext()) { Object item = iterNested.next(); if (item instanceof BeanDefinitionHolder) { BeanDefinitionHolder h = (BeanDefinitionHolder) item; try { if (h.getBeanDefinition().getBeanClassName() != null) Class.forName(h.getBeanDefinition().getBeanClassName()); processNested(h.getBeanDefinition()); } catch (ClassNotFoundException ignored) { iterNested.remove(); } } } } } }
Example 88
Project: org-libs-master File: GeneratorsNamespaceHandler.java View source code |
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { String interfaceName = element.getAttribute(INTERFACE_ATTR); String setupRef = element.getAttribute(SETUP_REF_ATTR); // Create the Interceptor definition RootBeanDefinition interceptorDefinition = new RootBeanDefinition(UsurperMethodInterceptor.class); if (StringUtils.hasText(setupRef)) { interceptorDefinition.getPropertyValues().addPropertyValue(USURPER_GENERATOR_SETUP_PROP, setupRef); } try { BeanDefinitionHolder holder = new BeanDefinitionHolder(interceptorDefinition, USURPER_INTERCEPTOR_BEAN_ID); registerBeanDefinition(holder, parserContext.getRegistry()); if (shouldFireEvents()) { BeanComponentDefinition componentDefinition = new BeanComponentDefinition(holder); postProcessComponentDefinition(componentDefinition); parserContext.registerComponent(componentDefinition); } } catch (BeanDefinitionStoreException ex) { parserContext.getReaderContext().error(ex.getMessage(), element); } List<String> interceptorNames = new ArrayList<String>(); interceptorNames.add(USURPER_INTERCEPTOR_BEAN_ID); // Create the target Class definition. RootBeanDefinition targetDefinition = new RootBeanDefinition(ProxyFactoryBean.class); targetDefinition.setSource(parserContext.extractSource(element)); targetDefinition.getPropertyValues().addPropertyValue(PROXYFACTORYBEAN_PROXY_INTERFACES_PROP, interfaceName); targetDefinition.getPropertyValues().addPropertyValue(PROXYFACTORYBEAN_INTERCEPTOR_NAMES_PROP, interceptorNames); return targetDefinition; }
Example 89
Project: spring-data-mongodb-master File: MappingMongoConverterParser.java View source code |
public BeanMetadataElement parseConverter(Element element, ParserContext parserContext) {
String converterRef = element.getAttribute("ref");
if (StringUtils.hasText(converterRef)) {
return new RuntimeBeanReference(converterRef);
}
Element beanElement = DomUtils.getChildElementByTagName(element, "bean");
if (beanElement != null) {
BeanDefinitionHolder beanDef = parserContext.getDelegate().parseBeanDefinitionElement(beanElement);
beanDef = parserContext.getDelegate().decorateBeanDefinitionIfRequired(beanElement, beanDef);
return beanDef;
}
parserContext.getReaderContext().error("Element <converter> must specify 'ref' or contain a bean definition for the converter", element);
return null;
}
Example 90
Project: springsource-cloudfoundry-samples-master File: RefreshScope.java View source code |
@Override protected Object resolveValue(Object value) { BeanDefinition definition = null; String beanName = null; if (value instanceof BeanDefinition) { definition = (BeanDefinition) value; beanName = BeanDefinitionReaderUtils.generateBeanName(definition, registry); } else if (value instanceof BeanDefinitionHolder) { BeanDefinitionHolder holder = (BeanDefinitionHolder) value; definition = holder.getBeanDefinition(); beanName = holder.getBeanName(); } if (definition != null) { boolean nestedScoped = scope.equals(definition.getScope()); boolean scopeChangeRequiresProxy = !scoped && nestedScoped; if (scopeChangeRequiresProxy) { // analysed return createScopedProxy(beanName, definition, registry, proxyTargetClass); } } // Nested inner bean definitions are recursively analysed here value = super.resolveValue(value); return value; }
Example 91
Project: spring-me-master File: SpringConfigurationLoader.java View source code |
/** * Loads a {@link MutableSource} by examining the value of a Sink. * * @param sink * The {@link Sink} configured using a certain type of source. * @param value * The Spring representation of that source. * @return A {@link MutableSource}, representing the source of the data to * be injected in the {@link Sink}. */ private static MutableSource loadSource(MutableContext context, Sink sink, Object value) { MutableSource result = null; if (value instanceof String) { return load(sink, (String) value); } else if (value instanceof RuntimeBeanReference) { result = load(sink, (RuntimeBeanReference) value, context); } else if (value instanceof TypedStringValue) { result = load(sink, (TypedStringValue) value); } else if (value instanceof BeanDefinitionHolder) { result = load(sink, (BeanDefinitionHolder) value, context); } else if (value instanceof ManagedList) { result = load(sink, (ManagedList) value, context); } else if (value instanceof ManagedMap) { result = load(context, sink, (ManagedMap) value); } else if (value instanceof ManagedProperties) { result = load(sink, (ManagedProperties) value); } else { System.err.println("No support for " + value.getClass().getName()); return null; } result.setId("source" + (counter++)); return result; }
Example 92
Project: kfs-master File: DefaultListableBeanFactory.java View source code |
/**
* Determine whether the specified bean definition qualifies as an autowire candidate,
* to be injected into other beans which declare a dependency of matching type.
* @param beanName the name of the bean definition to check
* @param mbd the merged bean definition to check
* @param descriptor the descriptor of the dependency to resolve
* @return whether the bean should be considered as autowire candidate
*/
protected boolean isAutowireCandidate(String beanName, RootBeanDefinition mbd, DependencyDescriptor descriptor) {
resolveBeanClass(mbd, beanName);
if (mbd.isFactoryMethodUnique) {
boolean resolve;
synchronized (mbd.constructorArgumentLock) {
resolve = (mbd.resolvedConstructorOrFactoryMethod == null);
}
if (resolve) {
new ConstructorResolver(this).resolveFactoryMethodIfPossible(mbd);
}
}
return getAutowireCandidateResolver().isAutowireCandidate(new BeanDefinitionHolder(mbd, beanName, getAliases(beanName)), descriptor);
}
Example 93
Project: spring-guice-master File: GuiceAutowireCandidateResolver.java View source code |
@Override
public boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor) {
return false;
}
Example 94
Project: constretto-core-master File: ConstrettoAutowireCandidateResolver.java View source code |
@SuppressWarnings("unchecked")
public boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor) {
if (descriptor.getDependencyType().isInterface()) {
return super.isAutowireCandidate(bdHolder, descriptor);
} else {
return findEnvironmentAnnotation(descriptor.getDependencyType()) == null || super.isAutowireCandidate(bdHolder, descriptor);
}
}
Example 95
Project: opennms_dashboard-master File: OnmsNamespaceHandler.java View source code |
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
BeanDefinitionHolder beanDefHolder = parserContext.getDelegate().parseBeanDefinitionElement(element);
AbstractBeanDefinition def = (AbstractBeanDefinition) beanDefHolder.getBeanDefinition();
return def;
}
Example 96
Project: resteeth-master File: ResteethAutowireCandidateResolverDelegate.java View source code |
@Override
public boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor) {
return autowireCandidateResolver.isAutowireCandidate(bdHolder, descriptor);
}
Example 97
Project: spring-data-jdbc-ext-master File: AqJmsConnectionFactoryBeanDefinitionParser.java View source code |
protected void registerBeanDefinition(BeanDefinitionHolder beanDefinitionHolder, BeanDefinitionRegistry beanDefinitionRegistry) {
//register other beans here if necessary
super.registerBeanDefinition(beanDefinitionHolder, beanDefinitionRegistry);
}
Example 98
Project: cattle-master File: ProcessParser.java View source code |
protected BeanDefinition register(String id, BeanDefinitionBuilder builder, ParserContext parserContext) { BeanDefinition def = builder.getBeanDefinition(); BeanDefinitionHolder holder = new BeanDefinitionHolder(def, id); BeanDefinitionReaderUtils.registerBeanDefinition(holder, parserContext.getRegistry()); return def; }
Example 99
Project: carewebframework-core-master File: FrameworkBeanFactory.java View source code |
@Override public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext ctx) { holder.getBeanDefinition().setAttribute(attributeName, ((Attr) source).getValue()); return holder; }
Example 100
Project: lilyproject-master File: LilyRuntimeNamespaceHandler.java View source code |
public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder beanDefinitionHolder, ParserContext parserContext) { return null; }
Example 101
Project: spring-data-gemfire-master File: EmbeddedServiceConfigurationSupport.java View source code |
/* (non-Javadoc) */ protected BeanDefinitionHolder newBeanDefinitionHolder(BeanDefinitionBuilder builder) { return new BeanDefinitionHolder(builder.getBeanDefinition(), generateBeanName()); }