public static Object createProxy(javassist.bytecode.annotation.Annotation info, Class annotation) throws Exception { Map<String, Object> map = ProxyMapCreator.createProxyMap(annotation, info); DefaultValueAnnotationValidator reader = new DefaultValueAnnotationValidator(); reader.validate(map, annotation); AnnotationProxy proxyHandler = new AnnotationProxy(annotation, map); return java.lang.reflect.Proxy.newProxyInstance(annotation.getClassLoader(), new Class[]{annotation}, proxyHandler); }
public void visitAnnotationMemberValue(AnnotationMemberValue annotationMemberValue) { try { value = AnnotationProxy.createProxy(annotationMemberValue.getValue()); } catch (Exception e) { throw new RuntimeException(e); } }
@SuppressWarnings("unchecked") public void visitEnumMemberValue(EnumMemberValue node) { value = Enum.valueOf(getAttributeType(), node.getValue()); }
public static Map<String, Object> createProxyMap(Class annotation, javassist.bytecode.annotation.Annotation info) { Map<String, Object> map = new HashMap<String, Object>(); if (info.getMemberNames() == null) return map; Set members = info.getMemberNames(); Iterator it = members.iterator(); while (it.hasNext()) { String name = (String) it.next(); MemberValue mv = info.getMemberValue(name); ProxyMapCreator creator = new ProxyMapCreator(getMemberType(annotation, name)); mv.accept(creator); map.put(name, creator.value); } return map; } }
public void visitArrayMemberValue(ArrayMemberValue arrayMemberValue) { Class baseType = type.getComponentType(); int size = 0; if (arrayMemberValue.getValue() != null) { size = arrayMemberValue.getValue().length; } value = Array.newInstance(baseType, size); MemberValue[] elements = arrayMemberValue.getValue(); for (int i = 0; i < size; i++) { ProxyMapCreator creator = new ProxyMapCreator(baseType); elements[i].accept(creator); Array.set(value, i, creator.value); } }
public static Object createProxy(javassist.bytecode.annotation.Annotation info, Class<?> annotation) throws Exception { Map<String, Object> map = ProxyMapCreator.createProxyMap(annotation, info); DefaultValueAnnotationValidator reader = new DefaultValueAnnotationValidator(); reader.validate(map, annotation); AnnotationProxy proxyHandler = new AnnotationProxy(annotation, map); return java.lang.reflect.Proxy.newProxyInstance(annotation.getClassLoader(), new Class[]{annotation}, proxyHandler); }
public void visitAnnotationMemberValue(AnnotationMemberValue annotationMemberValue) { try { value = AnnotationProxy.createProxy(annotationMemberValue.getValue()); } catch (Exception e) { throw new RuntimeException(e); } }
@SuppressWarnings("unchecked") public static Map<String, Object> createProxyMap(Class<?> annotation, javassist.bytecode.annotation.Annotation info) { Map<String, Object> map = new HashMap<String, Object>(); if (info.getMemberNames() == null) return map; Set members = info.getMemberNames(); Iterator it = members.iterator(); while (it.hasNext()) { String name = (String) it.next(); MemberValue mv = info.getMemberValue(name); ProxyMapCreator creator = new ProxyMapCreator(getMemberType(annotation, name)); mv.accept(creator); map.put(name, creator.value); } return map; } }
@SuppressWarnings("unchecked") public void visitEnumMemberValue(EnumMemberValue node) { value = Enum.valueOf(getAttributeType(), node.getValue()); }
public void visitArrayMemberValue(ArrayMemberValue arrayMemberValue) { Class<?> baseType = type.getComponentType(); int size = 0; if (arrayMemberValue.getValue() != null) { size = arrayMemberValue.getValue().length; } value = Array.newInstance(baseType, size); MemberValue[] elements = arrayMemberValue.getValue(); for (int i = 0; i < size; i++) { ProxyMapCreator creator = new ProxyMapCreator(baseType); elements[i].accept(creator); Array.set(value, i, creator.value); } }
public void visitAnnotationMemberValue(AnnotationMemberValue node) { try { Annotation ann = node.getValue(); value = AnnotationProxy.createProxy(ann); } catch (Exception e) { throw new RuntimeException(e); } }
public void visitArrayMemberValue(ArrayMemberValue node) { MemberValue[] values = node.getValue(); value = node.getValue(); Object vals = Array.newInstance(getAttributeType(), values.length); for (int i = 0 ; i < values.length ; i++) { values[i].accept(this); Array.set(vals, i, value); } value = vals; }
public void visitAnnotationMemberValue(AnnotationMemberValue node) { try { Annotation ann = node.getValue(); value = AnnotationProxy.createProxy(ann); } catch (Exception e) { throw new RuntimeException(e); } }
public void visitArrayMemberValue(ArrayMemberValue node) { MemberValue[] values = node.getValue(); value = node.getValue(); Object vals = Array.newInstance(getAttributeType(), values.length); for (int i = 0 ; i < values.length ; i++) { values[i].accept(this); Array.set(vals, i, value); } value = vals; }
protected static Object create(AnnotationsAttribute group, Class<? extends Annotation> annotation) throws Exception { if (group == null) return null; javassist.bytecode.annotation.Annotation info = group.getAnnotation(annotation.getName()); if (info == null) return null; return AnnotationProxy.createProxy(info, annotation); }
public static Object createProxy(javassist.bytecode.annotation.Annotation info) throws Exception { Class<?> annotation = Thread.currentThread().getContextClassLoader().loadClass(info.getTypeName()); return createProxy(info, annotation); }
public static Object createProxy(javassist.bytecode.annotation.Annotation info) throws Exception { Class annotation = Thread.currentThread().getContextClassLoader().loadClass(info.getTypeName()); return createProxy(info, annotation); }
private void undeployPrepares(ClassFile cf) throws Exception { Iterator<FieldInfo> fields = cf.getFields().iterator(); while (fields.hasNext()) { FieldInfo finfo = fields.next(); AnnotationsAttribute mgroup = (AnnotationsAttribute) finfo.getAttribute(AnnotationsAttribute.visibleTag); if (mgroup == null) continue; javassist.bytecode.annotation.Annotation binfo = mgroup.getAnnotation(Prepare.class.getName()); if (binfo == null) continue; AnnotationProxy.createProxy(binfo, Prepare.class); loaderStrategy.undeployPointcut(this, getPrepareName(cf, finfo)); } }
private void undeployInterceptor(AnnotationsAttribute visible, ClassFile cf) throws Exception { //Check for InterceptorDef javassist.bytecode.annotation.Annotation info = visible.getAnnotation(InterceptorDef.class.getName()); if (info != null) { if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Undeploying @InterceptorDef in: " + cf.getName()); AnnotationProxy.createProxy(info, Aspect.class); loaderStrategy.undeployInterceptor(this, cf.getName()); undeployInterceptorBindings(visible, cf); } }
private boolean deployPreparedClass(AnnotationsAttribute visible, ClassFile cf) throws Exception { //Check for Aspect javassist.bytecode.annotation.Annotation info = visible.getAnnotation(Prepare.class.getName()); if (info != null) { if (AspectManager.verbose && logger.isDebugEnabled()) logger.debug("Found top-level @Prepare in: " + cf.getName()); Prepare prepare = (Prepare) AnnotationProxy.createProxy(info, Prepare.class); String name = cf.getName() + "." + visible.getName(); String expr = replaceThisInExpr(prepare.value(), cf.getName()); loaderStrategy.deployPointcut(this, name, expr); return true; } return false; }