> So that leaves the option of having Types be aware of the session > factory. Which upon further reflection is not as bad as it sounds, > because really there are only a few Type implementations that even need > access to the session factory at all in any of these methods > (sqlTypes(), etc exluded). These would be limited to mainly the > EntityType subclasses, the ComponentType subclasses, and the > CollectionType subclasses. The essential point being that none of the > "primitive"/"simple" types are in this category...
Sounds fair. > The one wrinkle in this approach is the various type factory methods on > the o.h.Hibernate class. These would need to change signature, or go > away. I guess we could limit these changes to be only for those who really needed or would it be better to just get it over with. Still, *alot* of code will break for this :( (luckily it is compile-detectable) Is it worth doing this for sessionfactory scoped types ? Do we get more out of this than sf-controllable bytecode provider ? (I guess some of the issues regarding overriding the default types would also get in here) Could we somehow allow both possibilities for the sake of compability ? And I know Christian will "love" us for changing this so close to the book release ;) /max > -----Original Message----- > From: Max Andersen > Sent: Monday, July 17, 2006 10:51 AM > To: Steve Ebersole; Hibernate development > Subject: Re: [Hibernate] Roadmap - components > > point taken. > >> Well Type and UserType do not necessarily need to be in synch in this >> particular regard. We could conceivably change Type and then later >> (i.e. as part of a major release) change the UserType API to align it. >> After all the whole point of the UserType stuff was to insulate the > user >> from changes in the underlying Type system... >> >> -----Original Message----- >> From: Max Andersen >> Sent: Monday, July 17, 2006 10:43 AM >> To: Steve Ebersole; Hibernate development >> Subject: Re: [Hibernate] Roadmap - components >> >> On Mon, 17 Jul 2006 17:41:25 +0200, Steve Ebersole >> <[EMAIL PROTECTED]> wrote: >> >>> Type is *NOT* a public API... >> >> but UserType is - don't they need access to this info too ? >> >> /max >> >>> >>> -----Original Message----- >>> From: Max Andersen >>> Sent: Monday, July 17, 2006 10:38 AM >>> To: Steve Ebersole; Hibernate development >>> Subject: Re: [Hibernate] Roadmap - components >>> >>> ...but requires changes to public API so probably best suited for > 3.3. >>> >>>> Regarding the component related changes mentioned in the previous >>>> email... >>>> >>>> As I mentioned a lot of the pre-requisite work has already been >>>> performed on HEAD. I also took the opportunity to refactor the >>>> packaging of the org.hibernate.tuple package. Specifically, most of >>> the >>>> pre-requisite work was the introduction of the >>>> o.h.t.component.ComponentMetamodel class. Currently, ComponentType >>> just >>>> uses this new class directly. >>>> >>>> What needs to happen next, then, is for the introduction of a >>>> org.hibernate.persister.component.ComponentPersister which is > managed >>> as >>>> part of the session factory much like the other persisters. >>>> ComponentType will then need to look up its corresponding >>>> ComponentPersister based on a "role name" and use the capabilities > of >>>> that persister. The pattern here is very similar to >>>> EntityType/EntityPersister. The difficulty I ran into though was >> that >>>> ComponentType would then require access to the session factory (in >>> order >>>> to locate the persister) from within methods where it is currently >> not >>>> passed a reference to the session factory (specifically, this was >>>> methods like isSame(), isEqual(), compare(), getHashCode(), etc). >>> This >>>> gets to more general discussions we have had in the past regarding >> the >>>> scoping of Types. The solution is one of two things: >>>> 1) Devise some sort of scoping scheme where Types can unequivocally >> be >>>> "bound" to a session factory. This is obviously difficult given the >>>> current Hibernate.LONG, Hibernate.STRING, etc static references. > One >>>> thought here would be splitting types (and their interface >>>> appropriately) to define "static" Types and "scoped" Types... >>>> 2) Modify the Type interface to accept either a session or a session >>>> factory/entity mode combo for most methods (would not really matter >>> for >>>> methods like sqlTypes(), etc) >>>> >>>> As I mentioned before this then allows us to make the >>>> 'hibernate.bytecode.provider' and >>>> 'hibernate.bytecode.use_reflection_optimizer'. Down the road, it >> also >>>> allows us to implement discrimination-based inheritance for >>> components. >>>> >>>> >>>> >>> >> > ------------------------------------------------------------------------ >>> - >>>> Using Tomcat but need to do more? Need to support web services, >>> security? >>>> Get stuff done quickly with pre-integrated technology to make your >> job >>> >>>> easier >>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache >>>> Geronimo >>>> >>> >> > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>>> _______________________________________________ >>>> hibernate-devel mailing list >>>> hibernate-devel@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/hibernate-devel >>> >>> >>> >> >> >> > > > -- -- Max Rydahl Andersen callto://max.rydahl.andersen Hibernate [EMAIL PROTECTED] http://hibernate.org JBoss Inc [EMAIL PROTECTED] ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ hibernate-devel mailing list hibernate-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hibernate-devel