List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory getBeanDefinition
@Override public BeanDefinition getBeanDefinition(String beanName) throws NoSuchBeanDefinitionException
From source file:com.mtgi.analytics.aop.config.v11.BtManagerBeanDefinitionParser.java
/** * called by nested tags to push inner beans into the enclosing {@link BehaviorTrackingManagerImpl}. * @return <span>true if the inner bean was added to an enclosing {@link BehaviorTrackingManagerImpl}. Otherwise, the bean definition * is not nested inside a <bt:manager> tag and therefore will have to be registered as a global bean in the application * context.</span>//from w ww .ja v a 2s .c o m */ protected static boolean registerNestedBean(BeanDefinitionHolder nested, String parentProperty, ParserContext parserContext) { //add parsed inner bean element to containing manager definition; e.g. persister or SessionContext impls. CompositeComponentDefinition parent = parserContext.getContainingComponent(); if (parent instanceof ManagerComponentDefinition) { //we are nested; add to enclosing bean def. ManagerComponentDefinition mcd = (ManagerComponentDefinition) parent; BeanDefinition managerDef = parserContext.getContainingBeanDefinition(); MutablePropertyValues props = managerDef.getPropertyValues(); PropertyValue current = props.getPropertyValue(parentProperty); boolean innerBean = true; if (current != null) { //if the original value is a reference, replace it with an alias to the nested bean definition. //this means the nested bean takes the place of the default definition //in other places where it might be referenced, as well as during mbean export Object value = current.getValue(); DefaultListableBeanFactory factory = mcd.getTemplateFactory(); if (value instanceof RuntimeBeanReference) { String ref = ((RuntimeBeanReference) value).getBeanName(); if (factory.getBeanDefinition(ref) == nested.getBeanDefinition()) { //the nested definition is the same as the default definition //by reference, so we don't need to make it an inner bean definition. innerBean = false; } } } if (innerBean) props.addPropertyValue(parentProperty, nested); mcd.addNestedProperty(parentProperty); return true; } //bean is not nested inside bt:manager return false; }
From source file:com.helpinput.spring.BeanRegister.java
public static boolean removeBean(DefaultListableBeanFactory dlbf, BeanInfo beanInfo, String beanName) { BeanDefinition bd = null;//from w w w .j a v a 2 s .c o m if (!Utils.hasLength(beanName)) if (beanInfo != null) beanName = beanInfo.beanName; if (!Utils.hasLength(beanName)) return false; try { bd = dlbf.getBeanDefinition(beanName); if (bd != null) { //?bean? relativePath?, ?? // BeanRegister.runOnUnregisger(beanName, dlbf); String scope = bd.getScope(); /** * bean?application,singletonbeansession?view? flash? * requestbean, * session,view,flash,requestbeanapplicationbean * application,singletonbean * scopebeanbeanbean */ if (application_scope.equals(scope)) dlbf.destroyScopedBean(beanName); else if (singleton_scope.equals(scope)) dlbf.destroySingleton(beanName); dlbf.removeBeanDefinition(beanName); if (beanInfo != null && beanInfo.beanClass != null && PropertyEditor.class.isAssignableFrom(beanInfo.beanClass)) { ContextHolder.refreshers.remover(beanName); } List<BeanRegistInterceptor> interceptors = ContextHolder.beanRegistIntercpterHolder.getList(); if (Utils.hasLength(interceptors)) { for (BeanRegistInterceptor beanRegistInterceptor : interceptors) { if (beanRegistInterceptor.afterRemove(beanInfo.beanClass, beanName, scope, dlbf)) break; } } logRegist(Info.Removed, (String) bd.getAttribute(relativePath), beanInfo.beanName, scope); return true; } } catch (NoSuchBeanDefinitionException e) { //? BeanDefinition,????beanInfo, return true; } return false; }
From source file:de.contentreich.instrumentation.SpringBeansHelper.java
private Class getBeanClass(String beanName, DefaultListableBeanFactory beanFactory) { Class clazz = null;//from ww w. j a va 2s. c om if (beanFactory != null) { BeanDefinition definition = beanFactory.getBeanDefinition(beanName); if (!definition.isAbstract()) { clazz = beanFactory.getType(beanName); } } return clazz; }
From source file:com.longio.spring.LioBootstrap.java
private void bootEndpoints(DefaultListableBeanFactory bf, String name) { RootBeanDefinition bd = (RootBeanDefinition) bf.getBeanDefinition(name); String fbMethod = bd.getFactoryMethodName(); String fbName = bd.getFactoryBeanName(); Object fb = bf.getBean(fbName); if (!bf.containsBeanDefinition("longio.connector")) { GenericBeanDefinition bdd = new GenericBeanDefinition(); bdd.setBeanClass(NettyConnector.class); bf.registerBeanDefinition("longio.connector", bdd); }//from w w w.j a v a 2s . c o m Connector connector = bf.getBean("longio.connector", Connector.class); Class<?> fbCls = fb.getClass().getSuperclass(); Method m; try { m = fbCls.getDeclaredMethod(fbMethod); Boots boots = m.getAnnotation(Boots.class); if (boots == null) { MethodDispatcher dispatcher = new MethodDispatcher(); Boot b = m.getAnnotation(Boot.class); connector.start(b.port(), dispatcher, b.tt(), b.pt(), b.pkg()); logger.info("connector start at port [" + b.port() + "] with tt = " + b.tt() + " and pt = " + b.pt() + " for pkg = " + b.pkg()); } else { for (Boot b : boots.value()) { MethodDispatcher dispatcher = new MethodDispatcher(); connector.start(b.port(), dispatcher, b.tt(), b.pt(), b.pkg()); logger.info("connector start at port [" + b.port() + "] with tt = " + b.tt() + " and pt = " + b.pt() + " for pkg = " + b.pkg()); } } } catch (Exception e) { e.printStackTrace(); } }
From source file:com.wavemaker.runtime.data.cloudfoundry.CloudFoundryDataServiceBeanFactoryPostProcessor.java
private BeanDefinition getBeanDefinition(DefaultListableBeanFactory beanFactory, String beanName) { if (beanName.startsWith(BeanFactory.FACTORY_BEAN_PREFIX)) { beanName = beanName.substring(BeanFactory.FACTORY_BEAN_PREFIX.length()); }/* w w w .j a va 2 s. c om*/ return beanFactory.getBeanDefinition(beanName); }
From source file:com.longio.spring.LioBootstrap.java
private void resolveLservice(ApplicationContext app, DefaultListableBeanFactory bf) { for (String name : bf.getBeanDefinitionNames()) { AbstractBeanDefinition bd = (AbstractBeanDefinition) bf.getBeanDefinition(name); if (!bd.hasBeanClass()) { continue; }// ww w. j a v a 2 s. c o m if (!name.endsWith("Service")) { continue; } Class<?> cls = bd.getBeanClass(); if (cls != LioFactoryBean.class) { continue; } Object obj = app.getBean(name); app.getAutowireCapableBeanFactory().autowireBean(obj); Lservice ls = obj.getClass().getAnnotation(Lservice.class); if (ls != null) { String pkg = ls.path(); Connector connector = getConnector(bf); for (Dispatcher d : connector.getDispatcheres(pkg)) { MethodRefFactory mrf = new DefaultMethodRefFactory(cmdLookup); d.registerMethodRefs(mrf.createMethodRefs(obj)); } logger.info("load longio [" + pkg + "] service"); } LsAutowired lsa = obj.getClass().getAnnotation(LsAutowired.class); if (lsa != null) { String pkg = lsa.path(); logger.info("load longio client [" + pkg + "] service"); } } }
From source file:org.jnap.core.persistence.factory.DaoFactoryBkp.java
private boolean isDaoDefinedForEntity(DefaultListableBeanFactory beanFactory, Class<? extends PersistentModel> entityClass) { if (alreadyDefinedDaos == null) { alreadyDefinedDaos = new HashSet<Class<? extends PersistentModel>>(); for (String beanName : beanFactory.getBeanNamesForType(Dao.class, true, false)) { BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName); final Class<?> daoType = ClassUtils.resolveClassName(beanDefinition.getBeanClassName(), DaoFactory.class.getClassLoader()); Class daoEntityClass = GenericTypeResolver.resolveTypeArgument(daoType, Dao.class); alreadyDefinedDaos.add(daoEntityClass); daoNameCache.put(daoEntityClass, beanName); }/*w ww.ja va2 s.c om*/ } return alreadyDefinedDaos.contains(entityClass); }
From source file:com.longio.spring.LioBootstrap.java
private void resolveLfilters(ApplicationContext app, DefaultListableBeanFactory bf) { List<MessageFilter> filters = new ArrayList<MessageFilter>(); for (String name : bf.getBeanDefinitionNames()) { AbstractBeanDefinition bd = (AbstractBeanDefinition) bf.getBeanDefinition(name); //System.out.println("+++++++++++++++" + name); if (!bd.hasBeanClass()) { continue; }/*from w w w . j a v a 2s.co m*/ if (!name.endsWith("Filter")) { continue; } Class<?> cls = bd.getBeanClass(); if (cls != LioFactoryBean.class) { continue; } Object obj = app.getBean(name); app.getAutowireCapableBeanFactory().autowireBean(obj); LsFilter lf = obj.getClass().getAnnotation(LsFilter.class); if (lf != null) { filters.add((MessageFilter) obj); } } Connector connector = getConnector(bf); for (Dispatcher d : connector.getDispatcheres("*")) { d.registerMessageFilters(filters); for (MessageFilter filter : filters) { logger.info("load longio [" + filter.getClass().getCanonicalName() + "] message filter"); } } }
From source file:com.helpinput.spring.registinerceptor.ProxybeanRegistInterceptor.java
@Override public BeanDefinition beforeRegist(Class<?> clz, String beanName, String scope, DefaultListableBeanFactory dlbf, BeanDefinitionBuilder builder) { BeanDefinition bd = null;/*www . j a v a 2s . c om*/ if (getCondition(clz)) { Parent ann = clz.getAnnotation(Parent.class); String parentName = ann.value(); String property = ann.property(); if (Utils.hasLength(parentName) && Utils.hasLength(property)) { BeanDefinition parent = (GenericBeanDefinition) dlbf.getBeanDefinition(parentName); if (parent != null) { String baseBeanName = beanName + "$$$$"; BeanRegister.removeBean(dlbf, null, baseBeanName); BeanDefinition basebd = builder.getBeanDefinition(); basebd.setScope(scope); dlbf.registerBeanDefinition(baseBeanName, basebd); bd = new GenericBeanDefinition(); bd.setParentName(parentName); List<PropertyValue> propertyValueList = bd.getPropertyValues().getPropertyValueList(); RuntimeBeanReference reference = new RuntimeBeanReference(baseBeanName); PropertyValue pValue = new PropertyValue(property, reference); propertyValueList.add(pValue); //dlbf.getBean(baseBeanName); return bd; } } } return null; }
From source file:de.contentreich.instrumentation.SpringBeansHelper.java
public List<String[]> getSpringBeans(ApplicationContext appContext, String parentId) { logger.debug("Get spring beans for context " + parentId); ArrayList<String[]> beans = new ArrayList<String[]>(); String[] names = appContext.getBeanDefinitionNames(); for (int i = 0; i < names.length; i++) { String beanName = names[i]; DefaultListableBeanFactory beanFactory = getBeanFactory(appContext); Class clazz = getBeanClass(beanName, beanFactory); // DefaultListableBeanFactory beanFactory = (appContext instanceof DefaultListableBeanFactory) ? (DefaultListableBeanFactory) appContext : null; if (clazz != null && beanFactory != null) { // Not abstract BeanDefinition def = beanFactory.getBeanDefinition(beanName); if (!(def.isPrototype() || def.isLazyInit())) { Object bean = appContext.getBean(beanName); if (holdsChildApplicationContext(bean)) { // Semantically not perfect but ok ;) clazz = getApplicationContext(bean).getClass(); }/*from w ww . j a va 2s. c o m*/ } String[] beanEntry = new String[] { beanName, clazz.getName(), parentId }; beans.add(beanEntry); } } Collections.sort(beans, new Comparator() { @Override public int compare(Object o1, Object o2) { String s1 = ((String[]) o1)[0]; String s2 = ((String[]) o2)[0]; return s1.compareTo(s2); } }); logger.debug("Got " + beans.size() + " spring beans"); return beans; }