private InjectionNode buildProxyInjectionNode( InjectionNode injectionNode, String proxyClassName, ASTInjectionAspect injectionAspect, ConstructorInjectionPoint proxyConstructorInjectionPoint) { InjectionNode proxyInjectionNode = new InjectionNode(new ASTProxyType(injectionNode.getASTType(), proxyClassName)); proxyInjectionNode.getAspects().putAll(injectionNode.getAspects()); // alter construction injection ASTInjectionAspect proxyInjectionAspect = new ASTInjectionAspect(); proxyInjectionAspect.addAllFieldInjectionPoints(injectionAspect.getFieldInjectionPoints()); proxyInjectionAspect.addAllMethodInjectionPoints(injectionAspect.getMethodInjectionPoints()); // replace proxy constructor because of optional interceptor construction parameters proxyInjectionAspect.add(proxyConstructorInjectionPoint); proxyInjectionAspect.setAssignmentType(injectionAspect.getAssignmentType()); proxyInjectionNode.addAspect(proxyInjectionAspect); return proxyInjectionNode; }