Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 54251 invoked from network); 27 May 2005 20:17:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 27 May 2005 20:17:45 -0000 Received: (qmail 25854 invoked by uid 500); 27 May 2005 20:17:39 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 25770 invoked by uid 500); 27 May 2005 20:17:38 -0000 Mailing-List: contact harmony-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-dev@incubator.apache.org Received: (qmail 25693 invoked by uid 99); 27 May 2005 20:17:37 -0000 X-ASF-Spam-Status: No, hits=0.1 required=10.0 tests=FORGED_RCVD_HELO X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from jarnbjo.de (HELO vl11s25.smart-weblications.de) (83.151.18.106) by apache.org (qpsmtpd/0.28) with ESMTP; Fri, 27 May 2005 13:17:34 -0700 Received: from p549a7ce1.dip.t-dialin.net ([84.154.124.225] helo=[192.168.2.100]) by vl11s25.smart-weblications.de with asmtp (Exim 3.35 #1 (Debian)) id 1DblGo-0004Xm-00 for ; Fri, 27 May 2005 22:17:26 +0200 Message-ID: <42978057.7080403@Jarnbjo.de> Date: Fri, 27 May 2005 22:17:27 +0200 From: Tor-Einar Jarnbjo User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: harmony-dev@incubator.apache.org Subject: Re: [arch] VM/Classlibrary interface References: <60510FC8-4503-4149-A7EA-9CEBA018D0FA@apache.org> In-Reply-To: <60510FC8-4503-4149-A7EA-9CEBA018D0FA@apache.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Geir Magnusson Jr. wrote: > 1) Are there other models? How do some of the commercial VMs do it? Sun are generally using two different approaches: - package private classes in the common java.* and javax.* packages, which are protected from external usage by the language protection model - proprietary classes in the com.sun.* and sun.* packages, which are in theory accessible to application programmers, but should only be used through the java.* and javax.* APIs to avoid dependencies to a specific VM implementation I think both approaches are completely valid and there is no need to enforce a specific way to do this. The first possibility has the disadvantage you mention, that Harmony may decide to implement an internal class java.lang.Foo and Sun decides to add a new class java.lang.Foo to the next Java version. The second possibility has the advantage, that you are in full control of what recides in the org.apache.harmony packages, but the disadvantage that a programmer may decide to actually use these classes and hence make his program dependent on the Harmony VM implementation. Unfortunately, some Apache software actually does rely on com.sun classes, e.g. the SSL connectors in Tomcat. Tor