ebean-orm-tools / ebean-gradle-plugin

Plugin that performs Enhancement (entity, transactional, query bean) and can generate query beans from entity beans written in Kotlin via kapt
Apache License 2.0
10 stars 12 forks source link

Issue with class enhancement #6

Closed vnnv closed 5 years ago

vnnv commented 7 years ago

If I have an entity that implements an interface, and this interface is in another jar, the plugin can not enhance the entity. The plugin can not load class bytes. Here is part of the exception java.lang.RuntimeException: IOException reading bytes for bg/metering/backend/rest/DateDependantObject at io.ebean.enhance.entity.ClassPathClassBytesReader.getClassBytes(ClassPathClassBytesReader.java:42) at io.ebean.enhance.common.EnhanceContext.getClassBytes(EnhanceContext.java:77) at io.ebean.enhance.common.ClassMetaReader.readFromResource(ClassMetaReader.java:53) at io.ebean.enhance.common.ClassMetaReader.getWithCache(ClassMetaReader.java:35) at io.ebean.enhance.common.ClassMetaReader.get(ClassMetaReader.java:27) at io.ebean.enhance.common.EnhanceContext.getInterfaceMeta(EnhanceContext.java:174) at io.ebean.enhance.common.DetectEnhancement.visit(DetectEnhancement.java:94) at io.ebean.enhance.asm.ClassReader.accept(ClassReader.java:637) at io.ebean.enhance.asm.ClassReader.accept(ClassReader.java:521) at io.ebean.enhance.Transformer.detect(Transformer.java:297) at io.ebean.enhance.Transformer.transform(Transformer.java:112) at java_lang_instrument_ClassFileTransformer$transform.call(Unknown Source) at org.avaje.ebean.gradle.EbeanEnhancer$_enhanceClassFile_closure2.doCall(EbeanEnhancer.groovy:57) at sun.reflect.GeneratedMethodAccessor116.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) .... ..... Caused by: java.io.FileNotFoundException: JAR entry bg/metering/backend/rest/DateDependantObject.class not found in /mnt/devel/git/project/metering/grid-meter/rest/build/libs/rest-1.0.jar at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:142) at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:150) at java.net.URL.openStream(URL.java:1045) at io.ebean.enhance.entity.ClassPathClassBytesReader.getClassBytes(ClassPathClassBytesReader.java:38) ... 203 more

the interface - DateDependantObject.class is compiled and is in rest-1.0.jar

rbygrave commented 5 years ago

Is this a reproducable issue?

rbygrave commented 5 years ago

I'll close this for now.