<style>
/* Changing the layout to use less space for mobiles */
@media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) {
    #email-body { min-width: 30em !important; }
    #email-page { padding: 8px !important; }
    #email-banner { padding: 8px 8px 0 8px !important; }
    #email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; }
    #email-fields { padding: 0 8px 8px 8px !important; }
    #email-gutter { width: 0 !important; }
}
</style>
<div id="email-body">
<table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;">
    <tr valign="top">
        <td id="email-page" style="padding:16px !important;">
            <table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;">
                <tr valign="top">
                    <td bgcolor="#3e4c4e" style="background-color:#3e4c4e;color:#ffffff;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="https://www.jboss.org/dms/hibernate/images/jira/jiraheader_hibernate.png" alt="" style="vertical-align:top;" /></td>
                </tr><tr valign="top">
    <td id="email-banner" style="padding:32px 32px 0 32px;">

                
        
        
            <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;">
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;">
                                        <img id="email-avatar" src="https://hibernate.onjira.com/secure/useravatar?ownerId=emmanuel&avatarId=10641" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" />
                        <div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;">
                                    <a class="user-hover" rel="emmanuel" id="email_emmanuel" href="https://hibernate.onjira.com/secure/ViewProfile.jspa?name=emmanuel" style="color:#6c797f;">Emmanuel Bernard</a>
     commented on <img src="https://hibernate.onjira.com/images/icons/bug.gif" height="16" width="16" border="0" align="absmiddle" alt="Bug"> <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/OGM-208'>OGM-208</a>
            </div>
                        <div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;">
                <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/OGM-208'><strong>Create facility for OGM core and Dialects to receive custom metadata (annotation, programmatic) associated to entities, properties or associations</strong></a>
            </div>
                    </td>
    </tr>
</table>
    </td>
</tr>
<tr valign="top">
    <td id="email-fields" style="padding:0 32px 32px 32px;">
        <table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
            <tr valign="top">
                <td id="email-gutter" style="width:64px;white-space:nowrap;"></td>
                <td>
                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
                        <tr valign="top">
    <td colspan="2" style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 16px 0;width:100%;">
        <div class="comment-block" style="background-color:#edf5ff;border:1px solid #dddddd;color:#000000;padding:12px;"><h3><a name="SomeinfoonJandex"></a>Some info on Jandex</h3>


<p>2012-07-11T08:37:10  &lt;emmanuel&gt; I need your help to better understand your favorite toy: jandex<br/>
2012-07-11T08:37:11  &lt;hardy_&gt; you are alive <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T08:37:14  &lt;emmanuel&gt; do you ahve a few minutes?<br/>
2012-07-11T08:37:15  &lt;hardy_&gt; he he<br/>
2012-07-11T08:37:20  &lt;hardy_&gt; sure<br/>
2012-07-11T08:37:43  &lt;hardy_&gt; how come you are interested in this now?<br/>
2012-07-11T08:37:44  &lt;hardy_&gt; OGM?<br/>
2012-07-11T08:37:58  &lt;emmanuel&gt; yes<br/>
2012-07-11T08:38:17  &lt;emmanuel&gt; So are we forcing people to add the build time jandex task to their persistence archives?<br/>
2012-07-11T08:38:39  &lt;hardy_&gt; no<br/>
2012-07-11T08:39:06  &lt;hardy_&gt; we are building our own index<br/>
2012-07-11T08:39:28  &lt;hardy_&gt; based on the classes, packages etc they provide to the configuration<br/>
2012-07-11T08:40:01  &lt;emmanuel&gt; So you always build it at runtime from scratch<br/>
2012-07-11T08:40:15  &lt;emmanuel&gt; do you "cache" them between application laods?<br/>
2012-07-11T08:40:34  &lt;hardy_&gt; atm it gets build every time<br/>
2012-07-11T08:40:45  &lt;hardy_&gt; but my plan would be to cache the jandex index<br/>
2012-07-11T08:41:04  &lt;hardy_&gt; but that's secondary atm<br/>
2012-07-11T08:42:00  &lt;hardy_&gt; of course it would be nice in the long run to be able to share an index between ORM, Search, etc<br/>
2012-07-11T08:42:07  &lt;hardy_&gt; that would safe parsing time<br/>
2012-07-11T08:44:43  &lt;emmanuel&gt; ok so you're not using Jandex to be faster, but rather for the API<br/>
2012-07-11T08:44:44  &lt;emmanuel&gt; and you don't share the same index as the app server, which I thought was the idea to speed up load time<br/>
2012-07-11T08:45:35  &lt;emmanuel&gt; What did you like about Jandex parsing wise that you did not like in our current parser?<br/>
2012-07-11T08:45:44  &lt;emmanuel&gt; s/current/old/<br/>
2012-07-11T08:45:53  &lt;emmanuel&gt; I am poking you to get an idea<br/>
2012-07-11T08:45:58  &lt;emmanuel&gt; not judging here<br/>
2012-07-11T08:46:09  &lt;hardy_&gt; right, I am mainly after the api<br/>
2012-07-11T08:46:18  &lt;hardy_&gt; but in the long run also about sharing the index<br/>
2012-07-11T08:46:33  &lt;hardy_&gt; the api has a couple of advantages imo<br/>
2012-07-11T08:46:51  &lt;hardy_&gt; #1 there is a clear separation of annotation discovery and annotation processing now<br/>
2012-07-11T08:47:09  &lt;hardy_&gt; in our current code this is always mixed since we do both things at the same time<br/>
2012-07-11T08:47:34  &lt;hardy_&gt; jandex is giving you the annotation discovery and build what I call a Annotation Repository<br/>
2012-07-11T08:48:00  &lt;hardy_&gt; having such a repository allows to to process data in different ways<br/>
2012-07-11T08:48:37  &lt;hardy_&gt; think about global annotations<br/>
2012-07-11T08:48:44  &lt;hardy_&gt; take AnalyzerDef from Search<br/>
2012-07-11T08:48:58  &lt;hardy_&gt; they are application scoped and I don't care where they are defined<br/>
2012-07-11T08:49:06  &lt;hardy_&gt; I just want to know if and how many exist<br/>
2012-07-11T08:49:31  &lt;hardy_&gt; in the "old" way I have to still iterate the configured entities and for each entity do the check<br/>
2012-07-11T08:49:59  &lt;hardy_&gt; with jandex I say: jandex.getAnnotation(AnalyzerDef.class) and I get all the annotations<br/>
2012-07-11T08:50:16  &lt;emmanuel&gt; Jandex gives you an API to look for a given annotation directly?<br/>
2012-07-11T08:50:17  &lt;hardy_&gt; I can do this processing outside my entity processing<br/>
2012-07-11T08:50:20  &lt;emmanuel&gt; I have not seen that<br/>
2012-07-11T08:50:21  &lt;hardy_&gt; yes<br/>
2012-07-11T08:50:36  &lt;hardy_&gt; one sec<br/>
2012-07-11T08:51:00  &lt;emmanuel&gt; <a href="https://github.com/jbossas/jandex/blob/master/src/main/java/org/jboss/jandex/Index.java">https://github.com/jbossas/jandex/blob/master/src/main/java/org/jboss/jandex/Index.java</a><br/>
2012-07-11T08:52:01  &lt;hardy_&gt; List&lt;AnnotationInstance&gt; getAnnotations(DotName annotationName)<br/>
2012-07-11T08:52:06  &lt;hardy_&gt; in Index<br/>
2012-07-11T08:52:27  &lt;hardy_&gt; you just provide the dot name of the annotation you are after and you get a list of them<br/>
2012-07-11T08:52:55  &lt;hardy_&gt; the alternative is to go via the ClassInfo<br/>
2012-07-11T08:53:43  &lt;emmanuel&gt; CAn you say, give me all the classes hosting annotation A?<br/>
2012-07-11T08:53:45  &lt;hardy_&gt; that is more the reflection type of processing (which you also need of course)<br/>
2012-07-11T08:54:01  &lt;emmanuel&gt; Or give me all the classes hosting annotations which are anntated with @Stereotype?<br/>
2012-07-11T08:54:39  &lt;emmanuel&gt; Alternatively can you go from AnnotationInstance to the reflection info releated to where tha nnotationInstance is hosted?<br/>
2012-07-11T08:54:55  &lt;hardy_&gt; that's what getAnnotations does<br/>
2012-07-11T08:55:08  &lt;hardy_&gt; the AnnotationInstance contains AnnotationTarget<br/>
2012-07-11T08:55:32  &lt;hardy_&gt; which gives you access to the ClassInfo, MethodInfo or FieldInfo<br/>
2012-07-11T08:55:47  &lt;emmanuel&gt; got it, I missed that link<br/>
2012-07-11T08:55:58  &lt;hardy_&gt; np<br/>
2012-07-11T08:56:05  &lt;emmanuel&gt; (btw, I looked for doc but ended up scanning the code, did I miss something?)<br/>
2012-07-11T08:56:19  &lt;hardy_&gt; nope, the code is probably the best place to look<br/>
2012-07-11T08:56:34  &lt;hardy_&gt; I don't think they have a project site or something like this<br/>
2012-07-11T08:56:41  &lt;hardy_&gt; there is the code and the issue tracker<br/>
2012-07-11T08:56:54  &lt;emmanuel&gt; ok<br/>
2012-07-11T08:57:47  &lt;hardy_&gt; basically the API allows you to write at times cleaner code<br/>
2012-07-11T08:57:52  &lt;hardy_&gt; and less convoluted<br/>
2012-07-11T08:58:09  &lt;hardy_&gt; just because you are having multiple ways to read/process the annotations<br/>
2012-07-11T08:58:16  &lt;emmanuel&gt; Do you use getKnownDirectSubclasses<br/>
2012-07-11T08:58:33  &lt;emmanuel&gt; (yes I see that it has a couple of powerful APIs)<br/>
2012-07-11T08:59:05  &lt;hardy_&gt; I think the issue with this method is that only subclasses which are annotated appear there<br/>
2012-07-11T08:59:46  &lt;hardy_&gt; which might be enough in most cases<br/>
2012-07-11T09:00:02  &lt;hardy_&gt; to be honest I am not sure whether it is used atm or not<br/>
2012-07-11T09:00:06  &lt;emmanuel&gt; oh really<br/>
2012-07-11T09:00:17  &lt;emmanuel&gt; so they filter out non annotated types?<br/>
2012-07-11T09:01:12  &lt;hardy_&gt; wrong, it does to have to be annotated<br/>
2012-07-11T09:01:34  &lt;emmanuel&gt; you mena right then <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T09:01:41  &lt;hardy_&gt; but it has to be found during the scanning process<br/>
2012-07-11T09:01:44  &lt;emmanuel&gt; ah hold on<br/>
2012-07-11T09:01:47  &lt;hardy_&gt; read the jaadoc <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T09:01:52  &lt;emmanuel&gt; right ok got you<br/>
2012-07-11T09:02:05  &lt;emmanuel&gt; which one<br/>
2012-07-11T09:02:08  &lt;emmanuel&gt;  <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T09:03:09  &lt;emmanuel&gt; So with XML or say a programmatic API, how do you do it?<br/>
2012-07-11T09:03:20  &lt;emmanuel&gt; Do you have some kind of merger impl?<br/>
2012-07-11T09:03:20  &lt;hardy_&gt; that's another nice thing imo<br/>
2012-07-11T09:03:31  &lt;hardy_&gt; I never liked the Class vs XClass thing<br/>
2012-07-11T09:03:49  &lt;emmanuel&gt; hardy_: I'll come to that later <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T09:04:33  &lt;hardy_&gt; the beauty of Jandex is that once you have the index you don't deal with java.lang.annotation.Annotation anymore<br/>
2012-07-11T09:04:56  &lt;hardy_&gt; you are dealing with ClassInfo and AnnotationInstance<br/>
2012-07-11T09:05:05  &lt;emmanuel&gt; so do you build the Jandex model offf the XML or the programmatc API?<br/>
2012-07-11T09:05:10  &lt;hardy_&gt; so all you have to do is to create AnnotationInstnaces<br/>
2012-07-11T09:05:13  &lt;hardy_&gt; right<br/>
2012-07-11T09:05:33  &lt;emmanuel&gt; so you ahve sort of a fork of IndexReader?<br/>
2012-07-11T09:05:34  &lt;hardy_&gt; Strong wrote the xml processing for ORM<br/>
2012-07-11T09:06:15  &lt;emmanuel&gt; I guess that would be more Indexer<br/>
2012-07-11T09:06:50  &lt;hardy_&gt; I think we just create the AnnotationInstances and then create a new Index by creating a merged annotations map<br/>
2012-07-11T09:06:57  &lt;hardy_&gt; check the constructor of Index<br/>
2012-07-11T09:07:39  *** sannegrinovero has joined #hibernate-dev<br/>
2012-07-11T09:08:30  &lt;hardy_&gt; Index.create in fact<br/>
2012-07-11T09:09:01  &lt;emmanuel&gt; k<br/>
2012-07-11T09:09:36  &lt;emmanuel&gt; If you ahve a pointer to stliu's code I'll check it out<br/>
2012-07-11T09:09:52  &lt;hardy_&gt; it is on the metamodel branch<br/>
2012-07-11T09:10:07  &lt;hardy_&gt; the package org.hibernate.metamodel.internal.source.annotations.xml<br/>
2012-07-11T09:10:21  &lt;emmanuel&gt; Other question, do you keep the index in memory? Or do you discard it after the init phase?<br/>
2012-07-11T09:10:47  &lt;hardy_&gt; it is not needed anymore once everything is processes<br/>
2012-07-11T09:10:52  &lt;hardy_&gt; no need to keep it around<br/>
2012-07-11T09:11:00  &lt;emmanuel&gt; And have you measured the overhead of the Index compared to having the class model only which we need anyways for Hibernate?<br/>
2012-07-11T09:11:11  &lt;emmanuel&gt; OK, well Search would need it longer <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/sad.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T09:11:24  &lt;hardy_&gt; why?<br/>
2012-07-11T09:11:36  &lt;emmanuel&gt; because the factory is now mutable<br/>
2012-07-11T09:11:44  &lt;emmanuel&gt; you can add entities<br/>
2012-07-11T09:11:51  &lt;emmanuel&gt; that was required for Infinispan<br/>
2012-07-11T09:12:11  &lt;emmanuel&gt; Ask sannegrinovero it was not a walk in the park<br/>
2012-07-11T09:12:28  &lt;hardy_&gt; do I need to keep everything just for that<br/>
2012-07-11T09:12:59  &lt;emmanuel&gt; AFAIR yes<br/>
2012-07-11T09:13:14  &lt;emmanuel&gt; So my final question is about the API and code maintainability<br/>
2012-07-11T09:13:34  &lt;emmanuel&gt; Since you are decorrelated from Java's reflection API and the annotations as well<br/>
2012-07-11T09:13:35  &lt;sannegrinovero&gt; we do add new entities at runtime, but of course that doesn't happen very often. We could consider reloading the disk-stored index if need arises?<br/>
2012-07-11T09:14:02  &lt;emmanuel&gt; how do you quickly find the Jandex related reading calls corresponding to a specific annotation say @Columns<br/>
2012-07-11T09:14:06  &lt;hardy_&gt; adding an unrelated entity seems to be something which should be possible w/o processing everything again<br/>
2012-07-11T09:14:09  &lt;hardy_&gt; anyways<br/>
2012-07-11T09:14:43  &lt;hardy_&gt; sannegrinovero: right<br/>
2012-07-11T09:14:56  &lt;emmanuel&gt; hardy_: because my concern is that with these DotNames thingy, we back in String code's stone age<br/>
2012-07-11T09:15:25  &lt;emmanuel&gt; Likewise, when the annotation structure changes are you warned in any way?<br/>
2012-07-11T09:15:46  &lt;hardy_&gt; right, the dot name thing is one of the issues I had w/ jandex initially as well<br/>
2012-07-11T09:15:56  &lt;hardy_&gt; in ORM we created a constant file<br/>
2012-07-11T09:16:19  &lt;hardy_&gt; i think that works ok and it is actually a nice place to get an overview over all annotations<br/>
2012-07-11T09:16:20  &lt;hardy_&gt; one sec<br/>
2012-07-11T09:17:10  &lt;hardy_&gt; <a href="https://github.com/hibernate/hibernate-orm/blob/metamodel/hibernate-core/src/main/java/org/hibernate/metamodel/internal/source/annotations/util/JPADotNames.java">https://github.com/hibernate/hibernate-orm/blob/metamodel/hibernate-core/src/main/java/org/hibernate/metamodel/internal/source/annotations/util/JPADotNames.java</a><br/>
2012-07-11T09:17:34  &lt;hardy_&gt; there is one other thing which sucks<br/>
2012-07-11T09:17:46  &lt;hardy_&gt; there is no access to the default values of an annotation<br/>
2012-07-11T09:18:28  &lt;emmanuel&gt; ok so when it reads it, it returns null or the default primitive value instead of the default value?<br/>
2012-07-11T09:18:44  &lt;hardy_&gt; <a href="https://issues.jboss.org/browse/JANDEX-5">https://issues.jboss.org/browse/JANDEX-5</a><br/>
2012-07-11T09:18:45  &lt;jbossbot&gt; jira <span class="error">&#91;JANDEX-5&#93;</span> Default values for annotation attributes ignored <span class="error">&#91;Resolved (Won&#39;t Fix) Bug, Major, Jason Greene&#93;</span> <a href="https://issues.jboss.org/browse/JANDEX-5">https://issues.jboss.org/browse/JANDEX-5</a><br/>
2012-07-11T09:19:02  &lt;hardy_&gt; in ORM we worked around this with a JandexHelper<br/>
2012-07-11T09:19:45  &lt;hardy_&gt; <a href="https://github.com/hibernate/hibernate-orm/blob/metamodel/hibernate-core/src/main/java/org/hibernate/metamodel/internal/source/annotations/util/JandexHelper.java">https://github.com/hibernate/hibernate-orm/blob/metamodel/hibernate-core/src/main/java/org/hibernate/metamodel/internal/source/annotations/util/JandexHelper.java</a><br/>
2012-07-11T09:20:04  &lt;hardy_&gt; for me it is the only bitter pill in the API<br/>
2012-07-11T09:21:11  &lt;hardy_&gt; but as you can see in the issue it is just not possible to get to the information by just looking the class file. a shame really<br/>
2012-07-11T09:23:50  &lt;emmanuel&gt; ok<br/>
2012-07-11T09:24:37  &lt;emmanuel&gt; It seems your logic won't work for<br/>
2012-07-11T09:24:38  &lt;emmanuel&gt; @interface Pool {
2012-07-11T09:24:38  &lt;emmanuel&gt;   int size() default 10;
2012-07-11T09:24:38  &lt;emmanuel&gt; }<br/>
2012-07-11T09:24:43  &lt;emmanuel&gt; yu will get 0out of it <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/sad.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T09:25:09  &lt;hardy_&gt; ?<br/>
2012-07-11T09:25:26  &lt;emmanuel&gt; At least Jandex should have a isdefault() on AnnotationValue or whatever the type they use<br/>
2012-07-11T09:25:39  &lt;emmanuel&gt; If I use @Pool()<br/>
2012-07-11T09:25:44  &lt;emmanuel&gt; the value is not stored<br/>
2012-07-11T09:25:50  &lt;emmanuel&gt; so jandex don't see it<br/>
2012-07-11T09:25:57  &lt;emmanuel&gt; but since they return primitives<br/>
2012-07-11T09:26:02  &lt;emmanuel&gt; they will return the default value ie 0<br/>
2012-07-11T09:26:07  &lt;emmanuel&gt; instead of the expected 10<br/>
2012-07-11T09:26:34  &lt;hardy_&gt; you get a AnnotationValue back<br/>
2012-07-11T09:26:48  &lt;hardy_&gt; and if there is no value specified you get null<br/>
2012-07-11T09:27:02  &lt;hardy_&gt; in which case you have to go the the annotation and get the default value<br/>
2012-07-11T09:27:29  &lt;emmanuel&gt; ok<br/>
2012-07-11T09:27:35  &lt;hardy_&gt; <a href="https://github.com/hibernate/hibernate-orm/blob/metamodel/hibernate-core/src/main/java/org/hibernate/metamodel/internal/source/annotations/util/JandexHelper.java#L91">https://github.com/hibernate/hibernate-orm/blob/metamodel/hibernate-core/src/main/java/org/hibernate/metamodel/internal/source/annotations/util/JandexHelper.java#L91</a><br/>
2012-07-11T09:27:50  &lt;hardy_&gt; that's what the helper tries to hide from you<br/>
2012-07-11T09:28:03  &lt;emmanuel&gt; I've seen your code but Iwasn't expecting jandex to return a ann value null<br/>
2012-07-11T09:28:12  &lt;emmanuel&gt; when you expect a primitive int<br/>
2012-07-11T09:28:16  &lt;emmanuel&gt; but that makes sense<br/>
2012-07-11T09:28:22  &lt;emmanuel&gt; in a twisted way<br/>
2012-07-11T09:28:29  &lt;emmanuel&gt; Ah another question<br/>
2012-07-11T09:28:30  &lt;hardy_&gt; in a twisted way indeed<br/>
2012-07-11T09:28:38  &lt;emmanuel&gt; you get the Type<br/>
2012-07-11T09:28:43  &lt;emmanuel&gt; but no info about generics right?<br/>
2012-07-11T09:29:01  &lt;emmanuel&gt; so for generics you guys go back th Java's reflection<br/>
2012-07-11T09:29:06  &lt;hardy_&gt; getting back to annotations commons I guess<br/>
2012-07-11T09:29:11  &lt;hardy_&gt; yes<br/>
2012-07-11T09:29:13  &lt;emmanuel&gt; ok<br/>
2012-07-11T09:29:39  &lt;emmanuel&gt; So you've changed the code to be visitor based<br/>
2012-07-11T09:29:42  &lt;hardy_&gt; there are libraries which do the reflection bit<br/>
2012-07-11T09:29:49  &lt;emmanuel&gt; or do you still walk imperatively through the structure<br/>
2012-07-11T09:30:11  &lt;emmanuel&gt; Say you do getAnnotations(Entity.class) ~<br/>
2012-07-11T09:30:19  &lt;emmanuel&gt; but form there you walk heach property<br/>
2012-07-11T09:30:24  &lt;hardy_&gt; right<br/>
2012-07-11T09:30:25  &lt;emmanuel&gt; imperatively right?<br/>
2012-07-11T09:30:26  &lt;emmanuel&gt; ok cool<br/>
2012-07-11T09:30:33  &lt;emmanuel&gt; Thanks for all that info<br/>
2012-07-11T09:30:36  &lt;hardy_&gt; np<br/>
2012-07-11T09:30:43  &lt;emmanuel&gt; I'll record it in <a href="https://hibernate.onjira.com/browse/OGM-208" title="Create facility for OGM core and Dialects to receive custom metadata (annotation, programmatic) associated to entities, properties or associations">OGM-208</a> for posterity<br/>
2012-07-11T09:30:44  &lt;jbossbot&gt; jira <a href="https://hibernate.onjira.com/browse/OGM-208" title="Create facility for OGM core and Dialects to receive custom metadata (annotation, programmatic) associated to entities, properties or associations">OGM-208</a> Create facility for OGM core and Dialects to receive custom metadata (annotation, programmatic) associated to entities, properties or associations <span class="error">&#91;Open (Unresolved) Bug, Critical, Unassigned&#93;</span> <a href="https://hibernate.onjira.com/browse/OGM-208">https://hibernate.onjira.com/browse/OGM-208</a><br/>
2012-07-11T09:31:01  &lt;emmanuel&gt; Jandex is bitter sweet to me<br/>
2012-07-11T09:31:12  &lt;emmanuel&gt; the untype-safety is really hurting my feelings <img class="emoticon" src="https://hibernate.onjira.com/images/icons/emoticons/smile.gif" height="20" width="20" align="absmiddle" alt="" border="0"/><br/>
2012-07-11T09:31:15  &lt;hardy_&gt; lol<br/>
2012-07-11T09:31:26  &lt;hardy_&gt; it is not too bad<br/>
2012-07-11T09:32:34  &lt;hardy_&gt; but I agree it is a little bitter sweet. imo the sweetness is definitely winning though</p></div>
        <div style="color:#505050;padding:4px 0 0 0;">                </div>
    </td>
</tr>
                    </table>
                </td>
            </tr>
        </table>
    </td>
</tr>













            </table>
        </td><!-- End #email-page -->
    </tr>
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;">
            This message is automatically generated by JIRA.<br />
            If you think it was sent incorrectly, please contact your <a style='color:#6c797f;' href='https://hibernate.onjira.com/secure/ContactAdministrators!default.jspa'>JIRA administrators</a>.<br />
            For more information on JIRA, see: <a style='color:#6c797f;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a>
        </td>
    </tr>
</table><!-- End #email-wrap -->
</div><!-- End #email-body -->