@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; }
registry.registerContext(oc, bd.isPrimary());
@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); } }