List of usage examples for org.springframework.ide.eclipse.core.java.classreading CachingJdtMetadataReaderFactory getMetadataReader
public MetadataReader getMetadataReader(Resource resource) throws IOException
From source file:org.springframework.ide.eclipse.beans.core.internal.model.BeansJavaConfig.java
public void registerBean(ReaderEventListener eventListener, ClassLoader classloader) throws IOException { IJavaProject project = this.configClass.getJavaProject(); if (project == null) { return;//w w w . ja v a 2s . co m } CachingJdtMetadataReaderFactory metadataReaderFactory = new CachingJdtMetadataReaderFactory(project, classloader); MetadataReader metadataReader = metadataReaderFactory .getMetadataReader(this.configClass.getFullyQualifiedName()); AnnotatedGenericBeanDefinition abd = new AnnotatedGenericBeanDefinition( metadataReader.getAnnotationMetadata()); // AnnotationMetadata metadata = abd.getMetadata(); // if (metadata.isAnnotated(Profile.class.getName())) { // AnnotationAttributes profile = MetadataUtils.attributesFor(metadata, Profile.class); // if (!this.environment.acceptsProfiles(profile.getStringArray("value"))) { // return; // } // } // ScopeMetadata scopeMetadata = this.scopeMetadataResolver.resolveScopeMetadata(abd); // abd.setScope(scopeMetadata.getScopeName()); abd.setScope(BeanDefinition.SCOPE_SINGLETON); AnnotationBeanNameGenerator nameGenerator = new AnnotationBeanNameGenerator(); String beanName = nameGenerator.generateBeanName(abd, this.registry); // AnnotationConfigUtils.processCommonDefinitionAnnotations(abd); // if (qualifiers != null) { // for (Class<? extends Annotation> qualifier : qualifiers) { // if (Primary.class.equals(qualifier)) { // abd.setPrimary(true); // } // else if (Lazy.class.equals(qualifier)) { // abd.setLazyInit(true); // } // else { // abd.addQualifier(new AutowireCandidateQualifier(qualifier)); // } // } // } BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(abd, beanName); // definitionHolder = AnnotationConfigUtils.applyScopedProxyMode(scopeMetadata, definitionHolder, this.registry); BeanDefinitionReaderUtils.registerBeanDefinition(definitionHolder, this.registry); eventListener.componentRegistered(new BeanComponentDefinition(abd, beanName)); }