geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Monson-Haefel <>
Subject I contributed the original version of the Invocation object to JBoss.
Date Wed, 12 Nov 2003 04:35:10 GMT

I read the posting about JBoss and copyright infringement.  I noticed that
one of the exhibits was the Invocation class.  In October of 1999 I created
and contributed the first version of that class (or one like it) to JBoss
(at that time EJBoss). Perhaps this will help address that specific
copyright infringement issue.  If its helpful let me know.

Attached is an e-mail I sent to Marc Flurry back in 1999. I'll forward
another e-mail right after this one which was sent a few days later. The one
sent on October 27th (attached to this e-mail) is the original submission of
MethodInvocation class, the ancestor of the Invocation type.  The e-mail
from November 4, 1999 (see my next posting) is when I resubmitted the class
with some updates - at this point both Marc and I were working on it.

A bit of History: This all took place immediately after Rickard Oberg
proposed the idea of using the invoke( ) style container system in JBoss
(then EJBoss).  It was a very cool idea and is the basis for much of what
you see in JBoss, OpenEJB and Geronimo today.  Anyway, there was a very
minor flaw in Rickard's proposal. He was passing the index of the method
across the wire so that it could easily be relocated on the server.
Unfortunately, this didn't work so well because different VMs will index
methods in a class differently, so for example: If methodX on ClassB is
index 8 on your machine, it might be index 13 on my machine. To overcome
this problem, I came up with the MethodInvocation class which passes the
name of the method, arguments, and the class type across the network rather
than the methods index. MethodInvocation also allowed us to pass other
information like security and transaction contexts and the like.  A lot of
what we were concerned about back them was the efficiency if serialization -
which is why so much attention is paid to that topic. That aside, however,
if you examine the source code for MethodInvocation in the first and second
e-mails (November 4th, 1999) which I'll send next, you'll see a striking
similarity in purpose and design to modern constructs like the Invocation
type used in JBoss. That's because MethodInvocation was the basis for the
Invocation class.

I won't pretend to understand all the legal things being discussed. To be
honest it doesn't interest me very much. I think JBoss has every right to
protect their LGPL code - In fact I think its the right thing for them to
do. Having said that, however, I don't think every bit of code in JBoss is
realistically the property of that entity alone - there have been a lot of
people involved with the JBoss project over the years.

Richard Monson-Haefel
Co-Founder\Developer, Apache Geronimo
Author of:
  J2EE Web Services (AW 2003)
  Enterprise JavaBeans, 4ed (O'Reilly 2004)
  Java Message Service (O'Reilly 2000)

------ Forwarded Message
From: Richard Monson-Haefel <>
Date: Wed, 27 Oct 1999 09:28:57 -0500
To: Marc Fleury <>
Subject: MethodInvocation

Hi Marc,

I was going to add the MethodInvocation code to the container but the
ejboss code seems to be in a wild flux right now, so I didn't add it.  I
don't understand the code. Everything is commented out, stuff doesnt
compile, there is package missing (org.ejboss.server), etc.  I only have
a limited amount of time to contribute (about 2 hours a day) so rather
then waste time tring to wad through code in transition I'm sending you
Rickard's test rewritten to leverage the MethodInvocation class.  Please
add it to the ejboss code.  I recommend using a java.util.Hashtable as
the context object as shown below:

MethodInvocaiton mi = new MethodInvocation(method, args);
Hashtable methodContext = new Hashtable( );

You could alternatively use any collection or any serializable object
for the context.

Obviously the MethodInvocation needs to be assigned to a different
package and needs to be commented (I plan to do this when you have it in



Richard Monson-Haefel
EJB Expert for
(  )

Author of Enterprise JavaBeans
Published by O'Reilly & Associates
( )

------ End of Forwarded Message

View raw message