My Photo

Become a Fan

DailyMile

Google Ad Skyscraper

« Opinion on APIless caching. | Main | HAManager: Design discussion, Why you need two JVMs to start an ND cell »

September 08, 2005

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d83452595969e200d834a1bee769e2

Listed below are links to weblogs that reference EJB 3.0 PM not so portable in current form:

Comments

Gavin King

>> The spec mandates field level interception for the persistence manager. <<

This is not true. JBoss EJB3 implementation does not need to do field interception.

The spec was very carefully written so that field interception was not mandatory.

However, there is currently a proposal in the EG - that I believe has pretty much already been adopted - to add a hook for class transformation if (only if) the persistence provider wants it.

Billy

Yep
I meant field level change detection. I mentioned this approach later in the entry with the 'norewriting' comment which is likely what you guys are doing in your implementation. Copy the object and compare the attributes with the originals at commit time to spot changes using the required getter/setter pairs for each attribute.

Which is faster depends I guess on how many attributes are present.

Gavin King

The point is that the snapshot comparison approach (which has advantages and disadvantages) can be implemented by reflection, or by class generation, neither of which requires control of the classloader.

Emmanuel Bernard

You can always enhance the classes at build time, hence not use any classloader hacking system.

Billy

Yes,
I mentioned that in the blog.

Mike Keith

I don't think Containers would be too keen on using a classloader provided by the Provider (and I suspect WebSphere would be last in line for that one). What Gavin was referring to, that we have just adopted, is a method on the Container-Persistence Provider interface that gives the Provider a classloader that it can use to do stuff with and the ability to add a Transformer to the Container classloader. Talk to your rep on the EG (Randy) to get more info on it and see if it meets your needs. I think it should.

As far as offering this at a higher level you should contact Jim Knutson (IBM rep on J2EE), or your spec reps at other levels to propose this. Could be useful.

Billy

I was suggesting the container providing the classloader to the application resources to the provider and the provider then returning a classloader using that class loader as a base. The security stuff here is bogus, the provider is messing with the classes either way...

The comments to this entry are closed.