final InputStream is = getClass().getClassLoader().getResourceAsStream(className.replace('.', '/') + ".class"); try { pcData.write(className.replace('.', '/') + ".class", read(is)); } finally { is.close();
private Class build(ClassBuilder builder, ClassDefinition classDef) throws Exception { classLoader = new PackageClassLoader(data, ProjectClassLoader.createProjectClassLoader()); byte[] d = builder.buildClass( classDef, classLoader); data.write( convertClassToResourcePath(classDef.getClassName()), d ); this.store = new ClassFieldAccessorStore(); store.setClassFieldAccessorCache( new ClassFieldAccessorCache( classLoader ) ); store.setEagerWire( true ); Class clazz = classLoader.loadClass( classDef.getClassName() ); classDef.setDefinedClass( clazz ); return clazz; }
private Class build(ClassBuilder builder, ClassDefinition classDef) throws Exception { ProjectClassLoader prjClassLoader = ProjectClassLoader.createProjectClassLoader(); byte[] d = builder.buildClass( classDef, prjClassLoader ); JavaDialectRuntimeData data = new JavaDialectRuntimeData(); data.write( convertClassToResourcePath(classDef.getClassName()), d ); ClassLoader classLoader = new PackageClassLoader(data, prjClassLoader); ClassFieldAccessorStore store = new ClassFieldAccessorStore(); store.setClassFieldAccessorCache( new ClassFieldAccessorCache( classLoader ) ); store.setEagerWire( true ); Class clazz = classLoader.loadClass( classDef.getClassName() ); classDef.setDefinedClass( clazz ); return clazz; }