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());
}