Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 61871 invoked from network); 27 Oct 2005 12:51:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 27 Oct 2005 12:51:47 -0000 Received: (qmail 1577 invoked by uid 500); 27 Oct 2005 12:51:43 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 1541 invoked by uid 500); 27 Oct 2005 12:51:42 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 1530 invoked by uid 99); 27 Oct 2005 12:51:42 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Oct 2005 05:51:42 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [195.41.45.119] (HELO mail.eos.dk) (195.41.45.119) by apache.org (qpsmtpd/0.29) with SMTP; Thu, 27 Oct 2005 05:51:38 -0700 Received: (qmail 4740 invoked by uid 510); 27 Oct 2005 12:51:18 -0000 Received: from krab@trifork.com by mail.eos.dk by uid 508 with qmail-scanner-1.20st (clamuko: 0.66. spamassassin: 2.63. Clear:RC:1(10.0.0.212):. Processed in 0.014118 secs); 27 Oct 2005 12:51:18 -0000 Received: from unknown (HELO ?10.0.0.212?) (krab@trifork.com@10.0.0.212) by mail.eos.dk with SMTP; 27 Oct 2005 12:51:18 -0000 Mime-Version: 1.0 (Apple Message framework v734) In-Reply-To: <435FBF62.1070209@hogstrom.org> References: <758167158.1130250595297.JavaMail.jira@ajax.apache.org> <6A26B414-24DD-46A2-B0AF-C93091387E6F@apache.org> <37804A9F-AB04-4A7D-BC1A-CA606FD6720C@a <435FBF62.1070209@hogstrom.org> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <6CCF1828-DA08-4352-813E-19244D0A6AC3@trifork.com> Content-Transfer-Encoding: 7bit From: Kresten Krab Thorup Subject: Re: Trifork CORBA Date: Thu, 27 Oct 2005 14:51:12 +0200 To: dev@geronimo.apache.org X-Mailer: Apple Mail (2.734) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Oct 26, 2005, at 7:39 PM, Matt Hogstrom wrote: >> Can I ask why portability is critical? Most VM's (with one notable >> exception) use the Sun ORB so depending on it doesn't seem such a big >> deal to me, especially if its a necessary evil. I agree support >> for J2SE >> 5.0 is essential, but its pretty easy to write code that supports >> both >> 1.4 and 5.0 ORBs. > There is a single thing in the RMI/IIOP which is difficult to do portably, and so the new orb needs to have this as a VM-specific plug in mechanism. One issue is that RMI needs to be able to write the value of a final instance field (to de-serialize an object) and this is something that cannot be done with reflection. So for this we are using com.sun.Unsafe (which is the internal Sun API to implement reflection). This is also there in the IBM VMs, but JRockit has another API to accomplish the same thing. The other thing is being able to call constructors in the particular way needed when de-serializing instances of classes that have no public no-arg constructor. For this, we generally need to call into VM-specific private static methods also. Both of the above is something that the given VM's RMI implementaion (specifically java.io.ObjectStreamClass) would need to realize. So to the extend that it is permissible to reverse engineer the implementaition of ObjectStreamClass, we can extract what's needed to do this. Apart from this, the ORB can be completely portable. /Kresten