geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Mulder <ammul...@alumni.princeton.edu>
Subject Re: [XML][Deployment]POJO design?
Date Tue, 09 Sep 2003 12:51:17 GMT
On Tue, 9 Sep 2003, Greg Wilkins wrote:
> This is not just about code duplication - I was just responding to the
> suggestion that my proposal is more complex or more code. The main issue
> that I started talking about is that the type hierarchy is wrong.
>
> Eg. If we don't have a common geronimo.ejb.EJB class for Session, Entity
> and Message, then we can't write any code that deals with these beans in
> common - eg we are going to have to write the marshalling code 3 times, etc. etc.

	The only thing these classes have in common (currently) is the 
content in (j2ee.)ejb.EJB!  And you can treat them in common in that way!  
Then when you go to write the children (refs and so on), you'll have to 
write a cast, but give me a break!!!

public void marshallGeronimoEjb(j2ee.ejb.EJB foo) {
    marshallGeronimoEjbRef((GeronimoEJBRef[])foo.getEJBRef());
    marshallGeronimoEnvEntry((GeronimoEnvEntry[])foo.getEnvEntry());
    ...
}

public void marshallGeronimoEjbRef(GeronimoEjbRef[] foo) {
    ...
}

	Apparently, you even proposed adding some getters to do the cast 
for you, so even that goes away.  I really don't see what your issue is.

	Now it's possible that some new common properties will be added, 
but what can you think of that all EJBs have?  Caching and pooling and 
clustering are probably all different across Sessions, Entities, and MDBs, 
only Entities have CMP and CMR, only MDBs have JMS, etc.  Even MDBs don't 
have a JNDI name...

> If the geronimo classes don't implement/extend the standard classes then
> we can't pass them into any class that takes the standard classes.

	But they *will* extend the standard class!

geronimo.ejb.Session->ejb.Session->ejb.RpcBean->ejb.EJB->j2ee.Displayable

	Anything that takes an ejb.Session is totally OK taking a 
geronimo.ejb.Session!

> So I am not proposing change based on code volume - I'm proposing change
> because the design is currently not correct.

	The code actually checked in at this moment is not correct, I
agree, but that's not what I'm talking about.  Perhaps it would help if I
submit a patch, and you can look at what I'm actually suggesting.

Aaron


Mime
View raw message