Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 80976 invoked from network); 12 May 2005 07:48:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 12 May 2005 07:48:08 -0000 Received: (qmail 94744 invoked by uid 500); 12 May 2005 07:51:52 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 94679 invoked by uid 500); 12 May 2005 07:51:51 -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 94656 invoked by uid 99); 12 May 2005 07:51:51 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from imag.imag.fr (HELO imag.imag.fr) (129.88.30.1) by apache.org (qpsmtpd/0.28) with ESMTP; Thu, 12 May 2005 00:51:51 -0700 Received: from [129.88.103.2] (invite2.imag.fr [129.88.103.2]) by imag.imag.fr (8.13.0/8.13.0) with ESMTP id j4C7lnFu015050 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 12 May 2005 09:47:51 +0200 (CEST) Message-ID: <42830A29.4000904@ungoverned.org> Date: Thu, 12 May 2005 03:47:53 -0400 From: "Richard S. Hall" User-Agent: Mozilla Thunderbird 1.0.2-1.3.2 (X11/20050324) X-Accept-Language: en-us, en MIME-Version: 1.0 To: harmony-dev@incubator.apache.org Subject: Re: Class Library Modularity [Was Re: State of the World] References: <42806577.6080503@ungoverned.org> <4281A571.6010304@realityforge.org> <4281BD0B.1040100@ungoverned.org> <4281D861.7070900@realityforge.org> <4281FB92.1010601@ungoverned.org> <4282B05A.80502@realityforge.org> In-Reply-To: <4282B05A.80502@realityforge.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.6 (imag.imag.fr [129.88.30.1]); Thu, 12 May 2005 09:47:51 +0200 (CEST) X-IMAG-MailScanner: Found to be clean X-IMAG-MailScanner-Information: Please contact the ISP for more information X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Peter Donald wrote: > What you are asking for here is new language extensions - effectively > an "assembly" or "jar" access specifier to go along with private, > protected, public and package access. This would be very useful - > particularly if different jars/assemblies were of higher importance in > runtime. However it is not part of the Java standard and thus I > suspect that best way to achieve this goal is go through the jcp process. Well, I think that this is certainly one approach to implementing what I am talking about, but certainly not the only way. Perhaps not even the best way. Maybe it is better to have such module constructs outside the language and part of the deployment/package layer. I don't know. > You *could* implement this in Suns java by writing a custom > ClassLoader and using Annotations but ... unless it is part of a > standard somewhere it is unlikely to get broad adoption. Well, this is exactly the kind of stuff that is being done with the OSGi framework. So that is sort of where I am coming from. > You can implement this in suns java. Just write your own ClassLoader > to "hide" specified classes, set the ClassLoader as the bootstrap > classloader and it is done. Yes, this is basically the approach. Unfortunately, there are lots of little "gotchas" in here, because if you hide the wrong classes, then you end up getting Sun's JVM throwing exceptions at runtime because it cannot find "sun.*" classes, for example. It is hard to write code on Sun's JVM that is isolated from Sun's private API because there is an implicit assumption that every class loader leads back to Sun's impl classes and this assumption is required by Sun's libraries to function. This is not true of all JVMs however. > I would love get my hands on the platform to implement Isolate and > Resource Managers as in Suns MVM (research JVM) as that would make > writing scalable applications in java so much easier. I agree. I think these technologies are looking really interesting. -> richard