List of usage examples for org.springframework.beans.factory.config BeanDefinition getBeanClassName
@Nullable String getBeanClassName();
From source file:com.reactivetechnologies.platform.utils.EntityFinder.java
/** * Scans for JAX RS classes under given (comma delimited) packages * @param basePkg//from ww w .j ava 2 s . com * @return * @throws ClassNotFoundException * @throws IllegalAccessException */ public static List<Class<?>> findJaxRsClasses(String basePkg) throws ClassNotFoundException, IllegalAccessException { if (basePkg.contains(",")) { List<Class<?>> allPkgClasses = new ArrayList<>(); String[] pkgs = basePkg.split(","); for (String pkg : pkgs) { allPkgClasses.addAll(findJaxRsClasses(pkg)); } return allPkgClasses; } ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( false); provider.addIncludeFilter(new TypeFilter() { @Override public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { AnnotationMetadata aMeta = metadataReader.getAnnotationMetadata(); return aMeta.hasAnnotation(Path.class.getName()) || (aMeta.hasAnnotatedMethods(GET.class.getName()) || aMeta.hasAnnotatedMethods(POST.class.getName()) || aMeta.hasAnnotatedMethods(DELETE.class.getName()) || aMeta.hasAnnotatedMethods(Path.class.getName())); } }); Set<BeanDefinition> beans = null; try { beans = provider.findCandidateComponents(StringUtils.hasText(basePkg) ? basePkg : EntityFinder.class.getName().substring(0, EntityFinder.class.getName().lastIndexOf("."))); } catch (Exception e) { throw new BeanInitializationException("Unable to scan for JAX-RS annotated classes under base package", e); } List<Class<?>> classes = new ArrayList<Class<?>>(); if (beans != null && !beans.isEmpty()) { Class<?> restletClass; for (BeanDefinition bd : beans) { restletClass = Class.forName(bd.getBeanClassName()); classes.add(restletClass); } } else { log.warn("** Did not find any JAX-RS annotated classes under the given base scan package [" + basePkg + "]. No REST requests will be served **"); } return classes; }
From source file:com.foilen.smalltools.tools.Hibernate50Tools.java
/** * Generate the SQL file. This is based on the code in {@link LocalSessionFactoryBuilder#scanPackages(String...)} * * @param dialect/*from w ww . j a v a 2s . com*/ * the dialect (e.g: org.hibernate.dialect.MySQL5InnoDBDialect ) * @param outputSqlFile * where to put the generated SQL file * @param useUnderscore * true: to have tables names like "employe_manager" ; false: to have tables names like "employeManager" * @param packagesToScan * the packages where your entities are */ public static void generateSqlSchema(Class<? extends Dialect> dialect, String outputSqlFile, boolean useUnderscore, String... packagesToScan) { BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder().build(); MetadataSources metadataSources = new MetadataSources(bootstrapServiceRegistry); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(Embeddable.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(MappedSuperclass.class)); for (String pkg : packagesToScan) { for (BeanDefinition beanDefinition : scanner.findCandidateComponents(pkg)) { metadataSources.addAnnotatedClassName(beanDefinition.getBeanClassName()); } } StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder( bootstrapServiceRegistry); standardServiceRegistryBuilder.applySetting(AvailableSettings.DIALECT, dialect.getName()); StandardServiceRegistryImpl ssr = (StandardServiceRegistryImpl) standardServiceRegistryBuilder.build(); MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(ssr); if (useUnderscore) { metadataBuilder.applyImplicitNamingStrategy(new SpringImplicitNamingStrategy()); metadataBuilder.applyPhysicalNamingStrategy(new SpringPhysicalNamingStrategy()); } MetadataImpl metadata = (MetadataImpl) metadataBuilder.build(); // Exportation SchemaExport schemaExport = new SchemaExport(metadata); schemaExport.setOutputFile(outputSqlFile); schemaExport.setDelimiter(";"); schemaExport.setFormat(true); schemaExport.execute(true, false, false, true); }
From source file:org.echocat.jomon.spring.BeanFactoryUtils.java
@Nullable public static Class<?> findTypeOfBeanDefinition(@Nonnull ConfigurableListableBeanFactory beanFactory, @Nonnull String beanName) { Class<?> type;/* w ww . j a va 2 s .c om*/ final BeanDefinition definition = beanFactory.getBeanDefinition(beanName); if (definition != null && definition.getFactoryMethodName() == null) { final String beanClassName = definition.getBeanClassName(); if (beanClassName != null) { try { type = AutomaticServicesDiscovery.class.getClassLoader().loadClass(beanClassName); } catch (final ClassNotFoundException ignored) { type = null; } } else { type = null; } } else { type = null; } return type == null || FactoryBean.class.isAssignableFrom(type) ? null : type; }
From source file:com.googlecode.icegem.cacheutils.common.Utils.java
public static void registerClasses(List<String> packages) throws Exception { if ((packages != null) && (packages.size() > 0)) { List<Class<?>> classesFromPackages = new ArrayList<Class<?>>(); for (String pack : packages) { ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( false);/* w w w. ja v a2s . c om*/ provider.addIncludeFilter(new AnnotationTypeFilter(AutoSerializable.class)); Set<BeanDefinition> candidateComponents = provider.findCandidateComponents(pack); for (BeanDefinition beanDefinition : candidateComponents) { String className = beanDefinition.getBeanClassName(); final Class<?> clazz = Class.forName(className); classesFromPackages.add(clazz); } } HierarchyRegistry.registerAll(Thread.currentThread().getContextClassLoader(), classesFromPackages); } }
From source file:com.github.yulechen.springannotation.test.ConfigurationClassUtils.java
/** * Check whether the given bean definition is a candidate for a * configuration class (or a nested component class declared within a * configuration/component class, to be auto-registered as well), and mark * it accordingly.//from ww w . j a v a 2s .com * * @param beanDef * the bean definition to check * @param metadataReaderFactory * the current factory in use by the caller * @return whether the candidate qualifies as (any kind of) configuration * class */ public static boolean checkConfigurationClassCandidate(BeanDefinition beanDef, MetadataReaderFactory metadataReaderFactory) { String className = beanDef.getBeanClassName(); if (className == null) { return false; } AnnotationMetadata metadata; if (beanDef instanceof AnnotatedBeanDefinition && className.equals(((AnnotatedBeanDefinition) beanDef).getMetadata().getClassName())) { // Can reuse the pre-parsed metadata from the given // BeanDefinition... metadata = ((AnnotatedBeanDefinition) beanDef).getMetadata(); } else if (beanDef instanceof AbstractBeanDefinition && ((AbstractBeanDefinition) beanDef).hasBeanClass()) { // Check already loaded Class if present... // since we possibly can't even load the class file for this Class. Class<?> beanClass = ((AbstractBeanDefinition) beanDef).getBeanClass(); metadata = new StandardAnnotationMetadata(beanClass, true); } else { try { MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(className); metadata = metadataReader.getAnnotationMetadata(); } catch (IOException ex) { if (logger.isDebugEnabled()) { logger.debug( "Could not find class file for introspecting configuration annotations: " + className, ex); } return false; } } if (isFullConfigurationCandidate(metadata)) { beanDef.setAttribute(CONFIGURATION_CLASS_ATTRIBUTE, CONFIGURATION_CLASS_FULL); } else if (isLiteConfigurationCandidate(metadata)) { beanDef.setAttribute(CONFIGURATION_CLASS_ATTRIBUTE, CONFIGURATION_CLASS_LITE); } else { return false; } // It's a full or lite configuration candidate... Let's determine the // order value, if any. Map<String, Object> orderAttributes = metadata.getAnnotationAttributes(Order.class.getName()); if (orderAttributes != null) { beanDef.setAttribute(ORDER_ATTRIBUTE, orderAttributes.get(AnnotationUtils.VALUE)); } return true; }
From source file:co.paralleluniverse.common.spring.SpringContainerHelper.java
public static ConfigurableApplicationContext createContext(String defaultDomain, Resource xmlResource, Object properties, BeanFactoryPostProcessor beanFactoryPostProcessor) { LOG.info("JAVA: {} {}, {}", new Object[] { System.getProperty("java.runtime.name"), System.getProperty("java.runtime.version"), System.getProperty("java.vendor") }); LOG.info("OS: {} {}, {}", new Object[] { System.getProperty("os.name"), System.getProperty("os.version"), System.getProperty("os.arch") }); LOG.info("DIR: {}", System.getProperty("user.dir")); final DefaultListableBeanFactory beanFactory = createBeanFactory(); final GenericApplicationContext context = new GenericApplicationContext(beanFactory); context.registerShutdownHook();//from w w w .j a v a2 s .c om final PropertyPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertyPlaceholderConfigurer(); propertyPlaceholderConfigurer .setSystemPropertiesMode(PropertyPlaceholderConfigurer.SYSTEM_PROPERTIES_MODE_OVERRIDE); if (properties != null) { if (properties instanceof Resource) propertyPlaceholderConfigurer.setLocation((Resource) properties); else if (properties instanceof Properties) propertyPlaceholderConfigurer.setProperties((Properties) properties); else throw new IllegalArgumentException( "Properties argument - " + properties + " - is of an unhandled type"); } context.addBeanFactoryPostProcessor(propertyPlaceholderConfigurer); // MBean exporter //final MBeanExporter mbeanExporter = new AnnotationMBeanExporter(); //mbeanExporter.setServer(ManagementFactory.getPlatformMBeanServer()); //beanFactory.registerSingleton("mbeanExporter", mbeanExporter); context.registerBeanDefinition("mbeanExporter", getMBeanExporterBeanDefinition(defaultDomain)); // inject bean names into components context.addBeanFactoryPostProcessor(new BeanFactoryPostProcessor() { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { for (String beanName : beanFactory.getBeanDefinitionNames()) { try { final BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); if (beanDefinition.getBeanClassName() != null) { // van be null for factory methods final Class<?> beanClass = Class.forName(beanDefinition.getBeanClassName()); if (Component.class.isAssignableFrom(beanClass)) beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(0, beanName); } } catch (Exception ex) { LOG.error("Error loading bean " + beanName + " definition.", ex); throw new Error(ex); } } } }); if (beanFactoryPostProcessor != null) context.addBeanFactoryPostProcessor(beanFactoryPostProcessor); beanFactory.registerCustomEditor(org.w3c.dom.Element.class, co.paralleluniverse.common.util.DOMElementProprtyEditor.class); final Map<String, Object> beans = new HashMap<String, Object>(); beanFactory.addBeanPostProcessor(new BeanPostProcessor() { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { LOG.info("Loading bean {} [{}]", beanName, bean.getClass().getName()); beans.put(beanName, bean); if (bean instanceof Service) { final BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); Collection<String> dependencies = getBeanDependencies(beanDefinition); for (String dependeeName : dependencies) { Object dependee = beanFactory.getBean(dependeeName); if (dependee instanceof Service) { ((Service) dependee).addDependedBy((Service) bean); ((Service) bean).addDependsOn((Service) dependee); } } } return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { LOG.info("Bean {} [{}] loaded", beanName, bean.getClass().getName()); return bean; } }); final XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader((BeanDefinitionRegistry) beanFactory); xmlReader.loadBeanDefinitions(xmlResource); // start container context.refresh(); // Call .postInit() on all Components // There's probably a better way to do this try { for (Map.Entry<String, Object> entry : beans.entrySet()) { final String beanName = entry.getKey(); final Object bean = entry.getValue(); if (bean instanceof Component) { LOG.info("Performing post-initialization on bean {} [{}]", beanName, bean.getClass().getName()); ((Component) bean).postInit(); } } } catch (Exception e) { throw Throwables.propagate(e); } return context; }
From source file:me.springframework.di.spring.SpringConfigurationLoader.java
/** * Loads a {@link MutableInstance} from one of the {@link BeanDefinition}s * provided by the {@link BeanDefinitionRegistry} passed in. * //from w ww . j a v a 2 s .c om * @param instance * A {@link MutableInstance} to be populated. * @param definition * A {@link BeanDefinition}, providing the meta data. */ private static void load(MutableInstance instance, BeanDefinition definition, MutableContext context) { instance.setReferencedType(definition.getBeanClassName()); instance.setPrimitive(false); instance.setLazyInit(definition.isLazyInit()); instance.setId("source" + counter++); instance.setFactoryMethod(definition.getFactoryMethodName()); instance.setFactoryInstance(definition.getFactoryBeanName()); if (ConfigurableBeanFactory.SCOPE_SINGLETON.equals(definition.getScope())) { instance.setScope(Scope.SINGLETON); } if (ConfigurableBeanFactory.SCOPE_PROTOTYPE.equals(definition.getScope())) { instance.setScope(Scope.PROTOTYPE); } if (definition instanceof AbstractBeanDefinition) { instance.setInitMethod(((AbstractBeanDefinition) definition).getInitMethodName()); instance.setDestroyMethod(((AbstractBeanDefinition) definition).getDestroyMethodName()); } if (!definition.getConstructorArgumentValues().isEmpty()) { List<MutableConstructorArgument> arguments = new ArrayList<MutableConstructorArgument>(); for (Object object : definition.getConstructorArgumentValues().getGenericArgumentValues()) { MutableConstructorArgument argument = new MutableConstructorArgument(instance); argument.setInstance(instance); ValueHolder holder = (ValueHolder) object; argument.setSource(loadSource(context, argument, holder.getValue())); argument.setType(holder.getType()); arguments.add(argument); } instance.setConstructorArguments(arguments); } Set<MutablePropertySetter> setters = new HashSet<MutablePropertySetter>(); for (Object object : definition.getPropertyValues().getPropertyValueList()) { MutablePropertySetter setter = new MutablePropertySetter(instance); setter.setInstance(instance); PropertyValue value = (PropertyValue) object; setter.setName(value.getName()); setter.setSource(loadSource(context, setter, value.getValue())); setters.add(setter); } instance.setSetters(setters); // added by woj instance.setAutowireCandidate(definition.isAutowireCandidate()); if (definition instanceof AbstractBeanDefinition) { instance.setAutowireMode(((AbstractBeanDefinition) definition).getResolvedAutowireMode()); } else { instance.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_NO); } }
From source file:utils.HibernateSessionFactory.java
private static void buildSessionFactory() { try {//from www. j av a 2 s .c om if (sessionFactory == null) { //Play.current().getFile("conf/hibernate.cfg.xml") configuration = new AnnotationConfiguration().configure(configFile); /*ArrayList<Class> classes = new ArrayList<Class>(); LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource()); //sessionFactoryBean.setAnnotatedClasses(new Class[]{Team.class});//new row!!! //sessionFactoryBean.setPackagesToScan("models.db"); sessionFactoryBean.setHibernateProperties(hibProperties()); */ //org.springframework.orm.hibernate4.LocalSessionFactoryBean // the following will detect all classes that are annotated as @Entity ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AnnotationTypeFilter(Embeddable.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); // only register classes within "com.fooPackage" package for (BeanDefinition bd : scanner.findCandidateComponents("models.db")) { String name = bd.getBeanClassName(); try { Class.forName(name).newInstance(); Logger.debug("Adding entity : " + name); configuration.addAnnotatedClass(Class.forName(name)); } catch (Exception E) { // TODO: handle exception - couldn't load class in question E.printStackTrace(); } } // for //sessionFactory = sessionFactoryBean.getObject(); //configuration.setInterceptor(new HibernatePostLoadInterceptor()); //configuration.setListener("post-load",new ACenterAPostLoadEventListener()); //configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); /* SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) hibernateEntityManagerFactory.getSessionFactory(); sessionFactoryImpl.getEventListeners().setPreInsertEventListeners(new <span class="skimlinks-unlinked">org.hibernate.event.PreInsertEventListener</span>[] { this.preInsertEventListener }); sessionFactoryImpl.getEventListeners().setPreUpdateEventListeners(new <span class="skimlinks-unlinked">org.hibernate.event.PreUpdateEventListener</span>[] { this.preUpdateEventListener }); sessionFactoryImpl.getEventListeners().setPreDeleteEventListeners(new <span class="skimlinks-unlinked">org.hibernate.event.PreDeleteEventListener</span>[] { this.preDeleteEventListener }); SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) hibernateEntityManagerFactory.getSessionFactory(); EventListenerRegistry registry = sessionFactoryImpl.getServiceRegistry().getService(<span class="skimlinks-unlinked">EventListenerRegistry.class</span>); registry.getEventListenerGroup(EventType.POST_COMMIT_INSERT).appendListener(listener); registry.getEventListenerGroup(EventType.POST_COMMIT_UPDATE).appendListener(listener); } */ //sessionFactory.getE //org.hibernate.SessionFactoryObserver /*HistoryListener historyListener = new HistoryListener(); configuration.setL ("pre-insert", historyListener); configuration.setListener("pre-update", historyListener); configuration.setListener("pre-delete", historyListener);*/ /* EntityCallbackHandler callbackHandler = new EntityCallbackHandler(); callbackHandler.add(reflectionManager.toXClass(EntityWithJPACallbacks.class), reflectionManager); EventListenerRegistry registry = sessionFactory.getServiceRegistry().getService(EventListenerRegistry.class); // for @PrePersist: registry.setListeners(EventType.PERSIST, new EJB3PersistEventListener(callbackHandler)); // for @PreUpdate registry.setListeners(EventType.FLUSH_ENTITY, new EJB3FlushEntityEventListener(callbackHandler)); */ // only register classes within "com.fooPackage" package //ACenterA TODO: SESSION FACTORY CREATED.. PluginManager.notifyEvent(PluginEvent.HIBERNATE_SESSION_FACTORY_CREATED, getSession()); /* /* Internal ACenterA Inc. Use ClassPathScanningCandidateComponentProvider scannerTree = new ClassPathScanningCandidateComponentProvider(false); scannerTree.addIncludeFilter(new AnnotationTypeFilter(models.tree.TreeItem.class)); getSession(); for (BeanDefinition bd : scannerTree.findCandidateComponents("models.tree")) { String classId = bd.getBeanClassName(); try { Logger.debug("WILL INSERT INTO ELEMENTS_TYPE : " + classId); Class.forName(classId).newInstance(); ElementsType type = new ElementsType(); type.setClassId(classId); type.setName(classId); ElementsType t = ElementsTypeImpl.getOrCreateElementsType(type); Logger.debug("INSERTED OF : " + t); //configuration.addAnnotatedClass(); } catch (Exception E) { // TODO: handle exception - couldn't load class in question E.printStackTrace(); } } // for */ closeSession(); } } catch (Exception e) { e.printStackTrace(); System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } }
From source file:org.alfresco.repo.dictionary.ModelUtils.java
/** * This method doesn't seem to work due to possible spring bug in 3.0.0? * https://jira.springsource.org/browse/SPR-6592?page=com.atlassian.jirafisheyeplugin%3Afisheye-issuepanel * /*from ww w . ja v a2s. co m*/ * @return */ @SuppressWarnings("unchecked") public static HashMap<String, AbstractConstraint> getAllConstrainTypesAuto() { HashMap<String, AbstractConstraint> classList = new HashMap<String, AbstractConstraint>(); ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider( true); provider.addIncludeFilter(new AssignableTypeFilter(AbstractConstraint.class)); // scan in org.example.package Set<BeanDefinition> components = provider .findCandidateComponents("org/alfresco/repo/dictionary/constraint"); for (BeanDefinition component : components) { try { Class clazz = Class.forName(component.getBeanClassName()); AbstractConstraint object = (AbstractConstraint) clazz.newInstance(); String name = object.getType(); classList.put(name, object); } catch (ClassNotFoundException e) { } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return classList; }
From source file:cross.applicationContext.ReflectionApplicationContextGenerator.java
/** * Creates an xml element using the given document for element creation. * * @param generator/*from ww w . j a v a 2 s. c om*/ * @param document the document use for element creation * @param beanDescriptor * @return the modified element */ public static Element createElement(ReflectionApplicationContextGenerator generator, Document document, BeanDescriptor beanDescriptor) { Class<?> javaClass = beanDescriptor.clazz; System.out.println("Building bean element for " + javaClass.getName()); //get the name of the class String className = javaClass.getSimpleName(); //get the name of the package String packageName = javaClass.getPackage().getName(); //create <bean /> element Element beanElement = document.createElement("bean"); String classNameLower = toLowerCaseName(className); beanElement.setAttribute("id", classNameLower); String classAttr = (packageName == null) ? className : packageName + "." + className; beanElement.setAttribute("class", classAttr); beanElement.setAttribute("scope", beanDescriptor.scope); //constructors are not supported //get all the class' properties from the public fields and setter methods. for (Method method : javaClass.getMethods()) { checkMutableProperties(method, javaClass, beanDescriptor.obj, beanDescriptor.properties); } //sort by name Collections.sort(beanDescriptor.properties, new Comparator<ObjectProperty>() { @Override public int compare(ObjectProperty t, ObjectProperty t1) { return t.name.compareTo(t1.name); } }); List<String> blackList = Arrays.asList("workflow", "progress", "cvResolver"); //add all properties as <property /> elements for (ObjectProperty p : beanDescriptor.properties) { if (!blackList.contains(p.name)) { Element propertyElement = document.createElement("property"); propertyElement.setAttribute("name", p.name); Comment propertyCommentElement = document .createComment(AnnotationInspector.getDescriptionFor(javaClass, p.name)); boolean append = true; if (p.type.startsWith("java.lang.")) { String shortType = p.type.substring("java.lang.".length()); if (primitives.contains(shortType) || wrappers.contains(shortType)) { propertyElement.setAttribute("value", p.value); } } else if (primitives.contains(p.type) || wrappers.contains(p.type)) { propertyElement.setAttribute("value", p.value); } else if ("Array".equals(p.type) || "List".equals(p.type) || "java.util.List".equals(p.type)) { Element listElement = document.createElement("list"); String genericType = p.genericType; propertyElement.appendChild(listElement); } else if ("Set".equals(p.type) || "java.util.Set".equals(p.type)) { Element listElement = document.createElement("set"); propertyElement.appendChild(listElement); } else if ("Map".equals(p.type) || "java.util.Map".equals(p.type)) { Element listElement = document.createElement("map"); propertyElement.appendChild(listElement); } else if ("Properties".equals(p.type) || "java.util.Properties".equals(p.type)) { Element listElement = document.createElement("props"); propertyElement.appendChild(listElement); } else { try { // System.err.println("Skipping ref!"); Set<BeanDefinition> beanDefinitions = getImplementationsOf(Class.forName(p.type), "cross", "maltcms", "net.sf.maltcms"); BeanDefinition first = null; for (BeanDefinition bd : beanDefinitions) { generator.addBean(bd.getBeanClassName()); if (first == null) { first = bd; } } if (first != null) { String simpleName = first.getBeanClassName() .substring(first.getBeanClassName().lastIndexOf(".") + 1); propertyElement.setAttribute("ref", generator.classToElement.get(toLowerCaseName(simpleName)).id); } } catch (ClassNotFoundException ex) { Logger.getLogger(ReflectionApplicationContextGenerator.class.getName()).log(Level.SEVERE, null, ex); } append = true; // try { // generator.addBean(p.type); // Class<?> c = Class.forName(p.type); // List<Object> objects = generator.classToObject.get(c); // if (objects != null && !objects.isEmpty()) { // propertyElement.setAttribute("ref", generator.buildBeanElement(objects.get(0)).id); // } else { // append = false; // } // } catch (ClassNotFoundException ex) { // Logger.getLogger(ReflectionApplicationContextGenerator.class.getName()).log(Level.SEVERE, null, ex); // } } if (append) { beanElement.appendChild(propertyCommentElement); beanElement.appendChild(propertyElement); } else { beanElement.appendChild(propertyCommentElement); Comment comment = document.createComment("<property name=\"" + p.name + "\" ref=\"\"/>"); beanElement.appendChild(comment); } } } return beanElement; }