Example usage for org.springframework.context.annotation ScannedGenericBeanDefinition ScannedGenericBeanDefinition

List of usage examples for org.springframework.context.annotation ScannedGenericBeanDefinition ScannedGenericBeanDefinition

Introduction

In this page you can find the example usage for org.springframework.context.annotation ScannedGenericBeanDefinition ScannedGenericBeanDefinition.

Prototype

public ScannedGenericBeanDefinition(MetadataReader metadataReader) 

Source Link

Document

Create a new ScannedGenericBeanDefinition for the class that the given MetadataReader describes.

Usage

From source file:com.gzj.tulip.jade.context.spring.JadeComponentProvider.java

/**
 * jar?JadeDAO?/*from  w  w w.  ja  va 2  s  . com*/
 * <p>
 * ?BeanDefinition?DAO??
 * {@link BeanDefinition#getBeanClassName()} DAO???
 * <p>
 * BeanDefinition??Spring???
 */
public Set<BeanDefinition> findCandidateComponents(String uriPrefix) {
    if (!uriPrefix.endsWith("/")) {
        uriPrefix = uriPrefix + "/";
    }
    Set<BeanDefinition> candidates = new LinkedHashSet<BeanDefinition>();
    try {
        String packageSearchPath = uriPrefix + this.resourcePattern;
        boolean traceEnabled = logger.isDebugEnabled();
        boolean debugEnabled = logger.isDebugEnabled();
        Resource[] resources = this.resourcePatternResolver.getResources(packageSearchPath);
        if (debugEnabled) {
            logger.debug("[jade/find] find " + resources.length + " resources for " + packageSearchPath);
        }
        for (int i = 0; i < resources.length; i++) {
            Resource resource = resources[i];
            if (traceEnabled) {
                logger.trace("[jade/find] scanning " + resource);
            }
            // resourcePatternResolver.getResources?classPathResourcesmetadataReadergetInputStreamnull
            // ???exists
            if (!resource.exists()) {
                if (debugEnabled) {
                    logger.debug("Ignored because not exists:" + resource);
                }
            } else if (resource.isReadable()) {
                MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource);
                if (isCandidateComponent(metadataReader)) {
                    ScannedGenericBeanDefinition sbd = new ScannedGenericBeanDefinition(metadataReader);
                    sbd.setResource(resource);
                    sbd.setSource(resource);
                    if (sbd.getMetadata().isInterface() && sbd.getMetadata().isIndependent()) {
                        if (debugEnabled) {
                            logger.debug("Identified candidate component class: " + resource);
                        }
                        candidates.add(sbd);
                    } else {
                        if (traceEnabled) {
                            logger.trace("Ignored because not a interface top-level class: " + resource);
                        }
                    }
                } else {
                    if (traceEnabled) {
                        logger.trace("Ignored because not matching any filter: " + resource);
                    }
                }
            } else {
                if (traceEnabled) {
                    logger.trace("Ignored because not readable: " + resource);
                }
            }
        }
    } catch (IOException ex) {
        throw new BeanDefinitionStoreException("I/O failure during jade scanning", ex);
    }
    return candidates;
}

From source file:com.wantscart.jade.core.JadeDaoComponentProvider.java

/**
 * Scan the class path for candidate components.
 * /*from w  ww  .j av a 2s. co  m*/
 *  basePackage the package to check for annotated classes
 *  a corresponding Set of autodetected bean definitions
 */
public Set<BeanDefinition> findCandidateComponents(String uriPrefix) {
    if (!uriPrefix.endsWith("/")) {
        uriPrefix = uriPrefix + "/";
    }
    Set<BeanDefinition> candidates = new LinkedHashSet<BeanDefinition>();
    try {
        String packageSearchPath = uriPrefix + this.resourcePattern;
        boolean traceEnabled = logger.isDebugEnabled();
        boolean debugEnabled = logger.isDebugEnabled();
        Resource[] resources = this.resourcePatternResolver.getResources(packageSearchPath);
        if (debugEnabled) {
            logger.debug("[jade/find] find " + resources.length + " resources for " + packageSearchPath);
        }
        for (int i = 0; i < resources.length; i++) {
            Resource resource = resources[i];
            if (traceEnabled) {
                logger.trace("[jade/find] scanning " + resource);
            }
            // resourcePatternResolver.getResources?classPathResourcesmetadataReadergetInputStreamnull
            // ???exists
            if (!resource.exists()) {
                if (debugEnabled) {
                    logger.debug("Ignored because not exists:" + resource);
                }
            } else if (resource.isReadable()) {
                MetadataReader metadataReader = this.metadataReaderFactory.getMetadataReader(resource);
                if (isCandidateComponent(metadataReader)) {
                    ScannedGenericBeanDefinition sbd = new ScannedGenericBeanDefinition(metadataReader);
                    sbd.setResource(resource);
                    sbd.setSource(resource);
                    if (isCandidateComponent(sbd)) {
                        if (debugEnabled) {
                            logger.debug("Identified candidate component class: " + resource);
                        }
                        candidates.add(sbd);
                    } else {
                        if (traceEnabled) {
                            logger.trace("Ignored because not a interface top-level class: " + resource);
                        }
                    }
                } else {
                    if (traceEnabled) {
                        logger.trace("Ignored because not matching any filter: " + resource);
                    }
                }
            } else {
                if (traceEnabled) {
                    logger.trace("Ignored because not readable: " + resource);
                }
            }
        }
    } catch (IOException ex) {
        throw new BeanDefinitionStoreException("I/O failure during jade scanning", ex);
    }
    return candidates;
}

From source file:org.rosenvold.spring.convention.ConventionBeanFactory.java

private ScannedGenericBeanDefinition getScannedBeanDefinition(Class clazz) {
    try {//from   w w  w . ja va 2s  . c om
        MetadataReader metadataReader = this.metadataReaderFactory.getMetadataReader(clazz.getName());
        return new ScannedGenericBeanDefinition(metadataReader);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.java

private Set<BeanDefinition> scanCandidateComponents(String basePackage) {
    Set<BeanDefinition> candidates = new LinkedHashSet<>();
    try {/*from   w  w  w.  java2s .  c om*/
        String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
                + resolveBasePackage(basePackage) + '/' + this.resourcePattern;
        Resource[] resources = getResourcePatternResolver().getResources(packageSearchPath);
        boolean traceEnabled = logger.isTraceEnabled();
        boolean debugEnabled = logger.isDebugEnabled();
        for (Resource resource : resources) {
            if (traceEnabled) {
                logger.trace("Scanning " + resource);
            }
            if (resource.isReadable()) {
                try {
                    MetadataReader metadataReader = getMetadataReaderFactory().getMetadataReader(resource);
                    if (isCandidateComponent(metadataReader)) {
                        ScannedGenericBeanDefinition sbd = new ScannedGenericBeanDefinition(metadataReader);
                        sbd.setResource(resource);
                        sbd.setSource(resource);
                        if (isCandidateComponent(sbd)) {
                            if (debugEnabled) {
                                logger.debug("Identified candidate component class: " + resource);
                            }
                            candidates.add(sbd);
                        } else {
                            if (debugEnabled) {
                                logger.debug("Ignored because not a concrete top-level class: " + resource);
                            }
                        }
                    } else {
                        if (traceEnabled) {
                            logger.trace("Ignored because not matching any filter: " + resource);
                        }
                    }
                } catch (Throwable ex) {
                    throw new BeanDefinitionStoreException(
                            "Failed to read candidate component class: " + resource, ex);
                }
            } else {
                if (traceEnabled) {
                    logger.trace("Ignored because not readable: " + resource);
                }
            }
        }
    } catch (IOException ex) {
        throw new BeanDefinitionStoreException("I/O failure during classpath scanning", ex);
    }
    return candidates;
}