public AnnotationMetaDataVisitor(KernelControllerContext context) { super(context.getBeanMetaData(), context); }
/** * Get the uninstall parameters * * @param context the context * @return the parameters */ public List<ParameterMetaData> getUninstallParameters(KernelControllerContext context) { // todo some parameter support return getUninstallParameters(context.getBeanMetaData()); }
public BeanMetaData getBeanMetaData() { return getDelegate().getBeanMetaData(); }
/** * Get the install parameters * * @param context the context * @return the parameters */ public List<ParameterMetaData> getInstallParameters(KernelControllerContext context) { // todo some parameter support return getInstallParameters(context.getBeanMetaData()); }
/** * Is meta data already present. * * @param info the info * @param annotation the annotation * @param context the context * @return true if meta data already present */ protected boolean isMetaDataAlreadyPresent(T info, C annotation, KernelControllerContext context) { return isMetaDataAlreadyPresent(info, annotation, context.getBeanMetaData()); }
/** * Apply annotation since it's not present. * * @param info the info * @param retrieval the metadata * @param annotation the annotation * @param context the context * @return list of added meta data visitor nodes * @throws Throwable for any error */ protected List<? extends MetaDataVisitorNode> internalApplyAnnotation(T info, MetaData retrieval, C annotation, KernelControllerContext context) throws Throwable { return internalApplyAnnotation(info, retrieval, annotation, context.getBeanMetaData()); }
public boolean accepts(ControllerContext context) { Set<AnnotationMetaData> annotationMetaDataSet = ((KernelControllerContext) context).getBeanMetaData().getAnnotations(); for (AnnotationMetaData annotationMetaData : annotationMetaDataSet) { if (annotationType.isAssignableFrom(annotationMetaData.getAnnotationInstance().annotationType())) { return true; } } return false; } });
/** * Execute uninstalls * * @param context the context */ protected void doUninstalls(KernelControllerContext context) { BeanMetaData beanMetaData = context.getBeanMetaData(); List<InstallMetaData> uninstalls = beanMetaData.getUninstalls(); int size = uninstalls != null ? uninstalls.size() : 0; doUninstalls(context, size - 1); }
/** * Is install ignored. * * @param context the context * @return true if ignored found on any metadata */ protected boolean isInstallInvocationIgnored(KernelControllerContext context) { return isInvocationIgnored(getInstallLifecycle(context.getBeanMetaData())); }
/** * Is uninstall ignored. * * @param context the context * @return true if ignored found on any metadata */ protected boolean isUninstallInvocationIgnored(KernelControllerContext context) { return isInvocationIgnored(getUninstallLifecycle(context.getBeanMetaData())); }
/** * Get the install method * * @param context the context * @return the method */ public String getInstallMethod(KernelControllerContext context) { String installMethod = getInstallMethod(context.getBeanMetaData()); if (installMethod != null) { return installMethod; } return getDefaultInstallMethod(); }
/** * Get the uninstall method * * @param context the context * @return the method */ public String getUninstallMethod(KernelControllerContext context) { String uninstallMethod = getUninstallMethod(context.getBeanMetaData()); if (uninstallMethod != null) { return uninstallMethod; } return getDefaultUninstallMethod(); }
protected ClassInfo getClass(MetaDataVisitor visitor, String classType) throws Throwable { KernelControllerContext context = visitor.getControllerContext(); ClassLoader cl = Configurator.getClassLoader(context.getBeanMetaData()); return getClassInfo(classType, cl); } }
@SuppressWarnings("deprecation") public Object initializeProxy(Kernel kernel, String bean, boolean exposeClass, Set<String> interfaces) throws Throwable { if (exposeClass) throw new IllegalArgumentException("Cannot expose class via JDK LazyInitializer."); if (interfaces == null || interfaces.isEmpty()) throw new IllegalArgumentException("Null interfaces."); KernelControllerContext context = getKernelControllerContext(kernel, bean); BeanInfo beanInfo = context.getBeanInfo(); if (beanInfo == null) throw new IllegalArgumentException("Cannot proxy factory beans."); LazyHandler lazyHandler = new LazyHandler(bean, kernel.getBus(), beanInfo.getClassInfo().getType()); ClassLoader cl = Configurator.getClassLoader(context.getBeanMetaData()); return Proxy.newProxyInstance(getClass().getClassLoader(), getClasses(kernel.getConfigurator(), interfaces, cl), lazyHandler); }
protected void uninstallActionInternal(KernelControllerContext context) { uninstallKernelControllerContextAware(context); Object object = context.getTarget(); BeanInfo info = context.getBeanInfo(); BeanMetaData metaData = context.getBeanMetaData(); try { setAttributes(context, object, info, metaData, true); } catch (Throwable t) { log.warn("Error unconfiguring bean " + context, t); } }
protected void installActionInternal(KernelControllerContext context) throws Throwable { Object object = context.getTarget(); BeanInfo info = context.getBeanInfo(); BeanMetaData metaData = context.getBeanMetaData(); setAttributes(context, object, info, metaData, false); installKernelControllerContextAware(context); }
protected List<? extends MetaDataVisitorNode> internalApplyAnnotation(ClassInfo info, MetaData retrieval, C annotation, KernelControllerContext context) throws Throwable { BeanMetaData bmd = context.getBeanMetaData(); AbstractBeanMetaData beanMetaData = checkIfNotAbstractBeanMetaDataSpecific(bmd); AbstractConstructorMetaData constructor = new AbstractConstructorMetaData(); constructor.setValue(createValueMetaData(annotation)); beanMetaData.setConstructor(constructor); // reset, if present beanMetaData.setBean(null); context.setBeanInfo(null); return Collections.singletonList(constructor); }
protected void internalCleanAnnotation(ClassInfo info, MetaData retrieval, Aliases annotation, KernelControllerContext context) throws Throwable { BeanMetaData beanMetaData = context.getBeanMetaData(); Set<Object> aliases = beanMetaData.getAliases(); Controller controller = context.getController(); for(String alias : annotation.value()) { // check for ${property} if (annotation.replace()) alias = StringPropertyReplacer.replaceProperties(alias); if (aliases == null || aliases.contains(alias) == false) { controller.removeAlias(alias); } } } }
protected List<? extends MetaDataVisitorNode> internalApplyAnnotation(ClassInfo info, MetaData retrieval, Aliases annotation, KernelControllerContext context) throws Throwable { BeanMetaData beanMetaData = context.getBeanMetaData(); Set<Object> aliases = beanMetaData.getAliases(); Controller controller = context.getController(); for(String alias : annotation.value()) { // check for ${property} if (annotation.replace()) alias = StringPropertyReplacer.replaceProperties(alias); if (aliases == null || aliases.contains(alias) == false) { controller.addAlias(alias, beanMetaData.getName()); } } // no metadata added return null; }
public TypeInfo getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable { String type = getType(); if (type != null) { KernelControllerContext context = visitor.getControllerContext(); ClassLoader cl = Configurator.getClassLoader(context.getBeanMetaData()); KernelConfigurator configurator = context.getKernel().getConfigurator(); return configurator.getClassInfo(type, cl); } // check properties KernelControllerContext context = visitor.getControllerContext(); BeanInfo beanInfo = context.getBeanInfo(); PropertyInfo pi = beanInfo.getProperty(getName()); return applyCollectionOrMapCheck(pi.getType()); }