On 28 Jan 2014, at 17:20, Steve Ebersole <st...@hibernate.org> wrote:

> Almost done with this.  We are much more aggressive about indexing stuff into 
> Jandex now (which is a good thing) when we are not handed a Jandex Index.  
> 
> However, this does mean we need to be more careful in the case of JPA and 
> exclude-non-listed-classes.  ATM we drive annotations based on Jandex (aka, 
> the classes known to Jandex).  However, if we know index classes that should 
> not be used as entities, etc (because of exclude-non-listed-classes) we are 
> breaking the JPA spec.  To this end, I suggest that scanning:
> 1) Index everything
> 2) Keep a running tab of "allowable managed classes and packages".
> 
> Later, when beginning interpretation of annotations (via Jandex) we can 
> cross-reference that with the list of allowable managed classes.  Currently 
> we do:
> 
> for ( ClassInfo classInfo : 
> bindingContext.getJandexAccess().getIndex().getKnownClasses() ) {
>     // use them all...
> }
> 
> 
> What I am suggesting is:
> 
> interface ManagedClassFilter {
>     public boolean allowAsManagedClass(ClassInfo classInfo);
> }
> 
> for ( ClassInfo classInfo : 
> bindingContext.getJandexAccess().getIndex().getKnownClasses() ) {
>     if ( !managedClassFiler.allowAsManagedClass( classInfo ) ) {
>         continue;
>     }
> }
> 
> Further, rather than maintaining potentially large lists of allowable class 
> and package names, I'd also suggest we recognize the cases when we have 
> open-ended discovery in play and simply use an "all inclusive" strategy.  

sounds good. 
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to