On 05/23/2018 09:17 AM, Steve Ebersole wrote: > I never understood this `DataSourceDefinitions` part. Why can't they > just be discovered via jipijapa prior to doing anything with Hibernate/JPA?
The @DataSourceDefinition DataSource that ORM needs, doesn't start until after application classes are loaded/defined. > > See inline... > > Steve Ebersole and I have talked about adding additional phases to the > PU bootstrap, but that was so long ago, I forget if it was about > registering the ORM class transformer [1] earlier. If ORM 5.3 or 6.0, > is depending on [1] to work correctly in order to implement the ORM > features, we need to take some action. > > > So the rub right now (up through and including) 5.3 is that we sometimes > load domain model Class references during this "first bootstrap phase". > What really needs to happen is for Hibernate to unequivocally delay > loading domain model Class references until after this phase is over - > at least delay loading them into the "real" ClassLoader, we can use the > JPA temp ClassLoader if it is available. > > 6.0 will delay loading these Class references even more so than today. > However, even with 6.0 we cannot fully guarantee that we will never load > them during this 1st phase. That is a design goal for 7.0 and the move > to Jandex. > > In the past, I recall someone mentioning that lazy loading or dirty > flag > handling, would depend on bytecode enhancing. If that happened or will > happen, we should discuss what the fallback solution is for when > bytecode enhancing is not working. > > > Bytecode enhancement is not needed for either of these - Hibernate can > (and has forever) supported these without enhancement. That will > continue to be the case. Bytecode enhancement is simply an alternative > means for adding these features. This is good news, so applications will still work correctly. > > However, certain features such as automatic bi-dir association > management does require enhancement to work. Should we document that applications with entity classes using bi-dir association, also depend on enhancement working? And also mention why run-time enhancement might not work and perhaps mention build-time enhancement as a workaround to run-time enhancement not working? > > Another subject, is how should a user find out that bytecode enhancing > is actually updating application entity classes. Should that operation > have trace logging and should that be at the WF or ORM level? > > > Well based on what you described it sounds to me like there ought to be > at least 2 different log events here: > > 1. The transformer is registered (this could be either WF or Hibernate > or both) > 2. The transformer calls the Enhancer https://issues.jboss.org/browse/WFLY-10456 is for #1 + #2. > 3. (?) Enhancer enhances a class. Enhancer is an interface though and > this would rely on the impls (Javassist and Byte Buddy) to do this. > +10 for ORM to also log #2 + #3. :) Scott _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev