@SuppressWarnings("unchecked")
public static <T extends Annotation> T create(AnnotationDescriptor<T> descriptor) {
boolean isSecured = System.getSecurityManager() != null;
GetClassLoader action = GetClassLoader.fromContext();
ClassLoader classLoader = isSecured ? AccessController.doPrivileged( action ) : action.run();
//TODO round 34ms to generate the proxy, hug! is Javassist Faster?
Class<T> proxyClass = (Class<T>) Proxy.getProxyClass( classLoader, descriptor.type() );
InvocationHandler handler = new AnnotationProxy( descriptor );
try {
return getProxyInstance( proxyClass, handler );