sorry,
I tried to let this one go... but I can't... one more try :-)
Aaron Mulder wrote:
Or are you saying that we just just don't have a geronimo.ejb.EJB class and multiple implement it's methods in geronimo.ejb.Session, geronimo.ejb.Entity etc.
Yes, I'm saying skip the geronimo.ejb.EJB. It would currently
have no properties beyond what ejb.EJB has, and later would support only
the most basic (pool size perhaps?).
But that does not work, because geronimo.ejb.EJB is need to provide implementation of all the standard methods that return the geronimo specific versions of EJBRef etc.
If we don't have geronimo.ejb.EJB, then we have to implement most the methods in most of the classes.
Note that as the Geronimo instances are the only concrete ones, then we will always be creating Geronimo objects. Thus I would propose that the standards interfaces do not have setters, only getters.
That is clearly unacceptable. You say above that I can use the J2EE interfaces to edit J2EE DDs, and below that the J2EE interfaces have no setters.
Why? We are writing geronimo code, so what it the problem with creating geronimo versions of the DD POJOs? If you don't want to do anything with the non-standard elements then don't set them and don't render them in the XML.
Note that jeremies current proposal has no difference between the standard and vendor DD's anyway!
But that aside, I still disagree with this approach. You're
adding a whole lot of complexity and baggage to save yourself the writing
of getJndiName in more than one place. This is silly. Of the properties
that need to go in the Geronimo classes, about 5% would go in "EJB", as
opposed to 95% in "Session", "Entity", or "MessageDriven". If you just leave out geronimo.ejb.EJB, then all these problems go away.
No - the reason that the geronomo classes exist is to provide typed versions of the methods, so you don't have to cast to the geronimo specific instances all the time. If we are happy with untyped interfaces - then let's just use DOM!
I think my proposal is actually removing code and complexity. We will only have concrete implementations for of geronimo objects. There will be no standards only implementations, no copy constructors to convert standard to geronimo, no casting, no type checking before casting, no marshalling code for standard only, etc.
I am sure that we could get by without a standard version of the DD POJOs and only use the G DD POJOs. But having the standard interfaces is less code that we have already and at least gives a good indication of what's standard and what's not.
It seams bizarre to me that on one hand we are trying to merge the standard and vender XML into a single file, but on the other we are keeping separate implementations of the elements as POJOs???
cheers
