@Override
protected Class<?> findClass( final String name )
throws ClassNotFoundException
{
final String proxyName = name.replace( '.', '/' );
final String superName = getRealName( proxyName );
final ClassWriter cw = new ClassWriter( ClassWriter.COMPUTE_MAXS );
cw.visit( Opcodes.V1_5, Modifier.PUBLIC | Modifier.FINAL, proxyName, null, superName, null );
final MethodVisitor mv = cw.visitMethod( Modifier.PUBLIC, "<init>", "()V", null, null );
mv.visitCode();
mv.visitVarInsn( Opcodes.ALOAD, 0 );
mv.visitMethodInsn( Opcodes.INVOKESPECIAL, superName, "<init>", "()V" );
mv.visitInsn( Opcodes.RETURN );
mv.visitMaxs( 0, 0 );
mv.visitEnd();
cw.visitEnd();
final byte[] buf = cw.toByteArray();
return defineClass( name, buf, 0, buf.length );
}