I haven't found a way to override Weld detection of the @Persistence* annotations, or add a new one, I may be wrong but probably Wildfly just doesn't delegate to Weld for @Persistence*
On 01/22/2015 10:52 AM, Jozef Hartinger wrote: > Validation *is* done by *InjectionServices. However, the > JpaInjectionServices SPI is built with the following assumption of types: > > @PersistenceContext -> EntityManager > @PersistenceUnit -> EntityManagerFactory > > which seems as a reasonable assumption given that e.g. > @PersistenceContext Javadoc says that: > > "Expresses a dependency on a container-managed *EntityManager*" > > All the other validation is left for the service implementation. For the > other *InjectionServices, no validation (even the type) is performed by > Weld. > > HTH, > > Jozef > > On 01/22/2015 02:35 PM, Robert Marcano wrote: >> I have noticed that all *InjectionServices javadoc say that those >> implementations should do the required injection point validations. for >> example JpaInjectionServices >> >> "Register a persistence context injection point. The implementation >> validates the injection point ..." >> >> But for some reason if a JpaInjectionServices implementation is >> registered, an internal validation is triggered >> >> "WELD-001517: The type of the resource producer field >> [[BackedAnnotatedField] @PersistenceContext private >> com.example.TestBean.session] does not match the resource type interface >> javax.persistence.EntityManager" See [1] >> >> This field class is an Hibernate session, Wildfly support injecting that >> using @PersistentContext [2], but this validations is blocking me to do >> the same in a mock test environment I am coding. I am not sure how >> Wildfly inject it with Weld or if they skip Weld injecting JPA instances >> because of this. Why this validation is harcoded on Weld, when for >> example EjbInjectionServices doesn't force any predefined validation? >> >> Shouldn't it be removed and leave that validation to the >> JpaInjectionServices implementation as the javadoc say it is its >> responsibility?. >> >> >> [1] >> https://github.com/weld/core/blob/master/impl/src/main/java/org/jboss/weld/injection/ResourceInjectionFactory.java#L306 >> >> [2] >> https://docs.jboss.org/author/display/WFLY8/JPA+Reference+Guide#JPAReferenceGuide-InjectionofHibernateSessionandSessionFactoryInjectionofHibernateSessionandSessionFactory >> >> _______________________________________________ >> weld-dev mailing list >> [email protected] >> https://lists.jboss.org/mailman/listinfo/weld-dev > _______________________________________________ weld-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/weld-dev
