Yes, this is the new Jandex stuff I mentioned in Amsterdam. Moving to Jandex at all is one of the tasks we marked as optional for ORM 5.0. This would mean changing the legacy AnnotationBinder awesome-sauce to use Jandex, not the new metamodel code; so that would be a lot of work. Volunteers to help gets its done faster :)
On Mon, Dec 1, 2014 at 2:24 PM, Hardy Ferentschik <ha...@hibernate.org> wrote: > Hi, > > I think this email of Jason is worth forwarding to hibernate-dev. > Jandex 2 sounds really interesting for all Hibernate projects. To a > certain degree Jandex offers now > a lot of the things Steve tried to do with the reflight stuff. I am not > sure whether Jandex can completely > replace it, but t can be for sure of help. Especially interesting to me is > the fully resolved type information. > > In Search we have been talking for a long time to get rid of Commons > Annotations. It is basically already possible > now (using Jandex 1), but it got pushed back so far. Now with Jandex 2 we > definitely should make the switch. Maybe Search 5.1? > > Last but not least Validator, there we have been talking about Jandex for > a while as well. The new version would not have > the benefit of being able to remove the dependency to classmate. > > I think we should have a look at this Beta and provide feedback to Jason > if we find any problems. I am for sure to have a look > at it in the context of Validator. > > --Hardy > > > ----- Forwarded message from Jason Greene ----- > > I normally don’t spam you guys with Beta announcements, but since many of > you are using Jandex, and this release has significant changes, in > particular additional APIs, I wanted to make sure there was an opportunity > for feedback before going final. > > For those unfamiliar with Jandex, it was originally created as an > efficient bytecode based annotation indexer for AS7, but over time has > evolved to also act as a reflection library that does not require > class-loading nor complete linkage (you can analyze partial class graphs). > > For those interested in playing with runtime Java 8 Type annotations, > which will likely end up in EE8 APIs, this release will likely be quite > useful to you, since standard Java reflection does not currently expose > this data. > > A brief guide for using Jandex is located here: > https://github.com/wildfly/jandex > > Full notes are below. > > Thanks! > > > > Jandex 2.0 > ————— > > - Binary and Source Compatibility > > All previous code *using* Jandex 1.1 should compile and run against 2.0. > However, any code that extended “closed" contracts (e.g. > AnnotationTarget) > will require updating. > > - Offline reflective APIs and improvements > > All methods and fields, whether annotated or not are all accessible, and > supporting APIs were created to enable access to the information. > > Generics information is provided in a familiar pattern similar to Java > reflection but with usability improvements. Type information is fully > resolved. > > Method and field access now supports binary searchable. Annotations are > categorized and filtered at various levels. > > All need to cast has been eliminated from the framework. > > - Implemented offline index persistence > > The format is radically different to support the storage of > generics, type annotations, and the aggressive interning used to > reduce memory usage. Monster deployment (713MB of class data) > only requires 26MB of storage. JDK, which has 128MB of class data is > requires only 4.8 MB. Compressing the indexes by including them in a jar > reduces the capacity even further to about 14MB and 2.6 MB respectively. > > Loading time is extremely efficient, at 1 second to load the 26MB > index for the monster deployment. > > A portability layer is provided to convert the pervious > offline index formats into the new internal model. > > - Full Java 8 type annotation support > > Java 8 type annotations all you to use annotations almost anywhere. > For example, the following is now allowed: > > @A Map<@B Comparable<@F Object @C [] @D [] @E []>, @G List <@H D>> b; > @H O1.@E O2<@F S, @G T>.@D O3.@A Nested<@B U, @C V> bar6; > > A new set of APIs were developed to represent all of this information in > a useful way to the developer > > - Detailed class nesting information available > > CDI needed a way to determine the enclosing class information for > all types of inner classes. This is all calculated and presented via > a few easy methods > > - Memory optimization work > > The overhead required to store all offline reflection > info + generics is significant. Implemented a variety of graph > reduction strategies. > > End results of a monster deployment containing 713MB of class data > (> 100k classes > 1 million methods) = 120MB of memory usage. The > JDK has 128MB of class data, which Jandex uses > only 20MB of heap to store. > > -- > Jason T. Greene > WildFly Lead / JBoss EAP Platform Architect > JBoss, a division of Red Hat > > > > ----- End forwarded message ----- > > ----- End forwarded message ----- > > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev