@Override public void postCreateBean(AppContext context, BeanFactory factory, BeanDefinition def, Object bean) throws Throwable { boolean exportMBean = def.isExportMBean(); Managed a = bean.getClass().getAnnotation(Managed.class); if(null != a) { exportMBean = true; } if(exportMBean) { String name = def.getMBeanName(); if(Strings.isEmpty(name)){ name = null == a ? null : a.name(); } if(Strings.isEmpty(name)) { if(!Strings.isEmpty(def.getId())) { name = def.getId(); }else if(!Strings.isEmpty(def.getName())){ name = def.getType().getName() + "#" + def.getName(); }else if(def.isPrimary()) { name = def.getType().getName(); }else { name = def.getType().getName() + "-[mbean-" + String.valueOf(counter++) + "]"; } } log.info("Export mbean '{}' of {}", name, def); exporter.export(name, bean); } }
@Override public void postInitBean(AppContext context, BeanFactory factory, BeanDefinitionConfigurator c) throws Throwable { if(c.definition().isExportMBean() || Classes.isAnnotationPresent(c.definition().getBeanClass(), Managed.class)){ c.setLazyInit(false); } }
for(ValueDefinition vd : bld.getValues()){ Object v = vd.getDefinedValue(); if(v instanceof BeanDefinition && !((BeanDefinition)v).isSingleton()) { cache = false; BeanDefinition bd = entry.getValue(); if(!bd.isSingleton()) { cache = false; if (null == qualifier || bd.getQualifiers().contains(qualifier)) { beans.add(entry.getKey());
protected void loadVariableFromBeans(BeanFactory beanFactory){ Map<Variable,BeanDefinition> beans = beanFactory.getBeansWithDefinition(Variable.class); beans.putAll(beanFactory.getBeansWithDefinition(VariableWithContext.class)); for(Entry<Variable,BeanDefinition> entry : beans.entrySet()){ BeanDefinition bd = entry.getValue(); String name = bd.getName(); if(!Strings.isEmpty(name)){ Variable variable = entry.getKey(); Scope scope = null; if(variable instanceof ScopedVariable){ scope = ((ScopedVariable) variable).getScope(); } if(null == scope){ scope = defaultScope; } variables.put(name.toLowerCase(), new VariableDefinition(bd.getSource(), name, scope, variable)); } } }
@Override public boolean resolveInjectValue(BeanDefinition bd, Object bean, ReflectValued v, Annotation a, Out<Object> value) { if(!(v.getType().equals(Dyna.class) || v.getType().equals(Dao.class))) { return false; } if(!bd.isPrimary()) { return false; } if (v.getType().equals(Dao.class)) { value.set(dao); return true; } Class<?>[] types = Types.getActualTypeArguments(v.getGenericType()); if (types.length != 1) { return false; } Class<?> type = types[0]; if (type.equals(Dao.class)) { value.set(dao); return true; } return false; }
String name = bd.getName(); if(Strings.isEmpty(name)) { Name na = plugin.getClass().getAnnotation(Name.class);
protected void loadVariableFromProviders(BeanFactory beanFactory){ for(Entry<VariableProvider, BeanDefinition> providerEntry : beanFactory.getBeansWithDefinition(VariableProvider.class).entrySet()){ VariableProvider provider = providerEntry.getKey(); Object source = providerEntry.getValue().getSource(); List<VariableDefinition> providedVariables = provider.getVariables(); for(VariableDefinition providerVd : providedVariables){ String key = providerVd.getName().toLowerCase(); VariableDefinition vd = variables.get(key); if(null != vd){ throw new VariableConfigException("Found duplicated variable '" + vd.getName() + "', check source [" + vd.getScope() + "," + source + "]"); } variables.put(key,providerVd); } } }
throw new BeanDefinitionException("No matched method '" + methodName + "' with " + md.getArguments().size() + " arguments in '" + bd + "', source : " + bd.getSource());
protected void register(EventListenerRegistration reg,BeanDefinition bd){ String[] categories = reg.getCategories(); String[] eventNames = reg.getEventNames(); if(Arrays2.isEmpty(categories) && Arrays2.isEmpty(eventNames)){ throw new EventRegistrationException("'categories' or 'eventNames' must be defined in listener registration, source : " + bd.getSource()); } EventListener listener = reg.getListener(); if(null != categories){ for(String category : categories){ if(!eventManager.isEventCategoryRegistered(category)){ throw new EventRegistrationException("event category '" + category + "' not register, make sure you type the correct name, source : " + bd.getSource()); } eventManager.addEventCategoryListener(category, listener); } } if(null != eventNames){ for(String eventName : eventNames){ if(!eventManager.isEventNameRegistered(eventName)){ throw new EventRegistrationException("event name '" + eventName + "' not register, make sure you type the correct name, source : " + bd.getSource()); } eventManager.addEventNameListener(eventName, listener); } } } }
protected void register(EventRegistration reg,BeanDefinition bd){ String category = reg.getCategory(); String[] eventNames = reg.getEventNames(); if(null == eventNames || eventNames.length == 0){ eventManager.registerEventCategory(category); }else{ for(String eventName : eventNames){ if(eventManager.isEventNameRegistered(eventName)){ throw new EventRegistrationException("event name '" + eventName + "' aleady registered, check the event registration bean in source : " + bd.getSource()); } eventManager.registerEventName(category, eventName); } } }
BeanReference beanRef = (BeanReference) vd.getDefinedValue(); if (beanRef.getTargetBeanDefinition() != null) { Class<?> refCls = beanRef.getTargetBeanDefinition().getSource().getClass(); matched = pt.isAssignableFrom(refCls); if (!matched) {