Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 40910 invoked from network); 26 Oct 2005 00:19:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 26 Oct 2005 00:19:41 -0000 Received: (qmail 95658 invoked by uid 500); 26 Oct 2005 00:19:37 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 95615 invoked by uid 500); 26 Oct 2005 00:19:36 -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 95597 invoked by uid 99); 26 Oct 2005 00:19:36 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Oct 2005 17:19:36 -0700 X-ASF-Spam-Status: No, hits=0.5 required=10.0 tests=DNS_FROM_RFC_ABUSE X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [216.136.173.57] (HELO smtp013.mail.yahoo.com) (216.136.173.57) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 25 Oct 2005 17:19:33 -0700 Received: (qmail 21882 invoked from network); 26 Oct 2005 00:19:14 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Received:Mime-Version:In-Reply-To:References:Content-Type:Message-Id:Content-Transfer-Encoding:From:Subject:Date:To:X-Mailer; b=6mvgN5p7B3fqscMM++R1oTJ7FMpJw+5wQTuy0FU+RisBlMrOH7wK7bPyvW5VFiN6ruRs8DUMhgt4mS8En3L6ngyeZpMRWWsS3tXgiCGClSuQNxllaoImKSDunPqM4xPmKfujYjQOcONk0qPf9edfoGH5WDYJTDwVGmv0DvyRWI8= ; Received: from unknown (HELO ?192.168.1.5?) (david?jencks@66.93.38.137 with plain) by smtp013.mail.yahoo.com with SMTP; 26 Oct 2005 00:19:13 -0000 Mime-Version: 1.0 (Apple Message framework v622) In-Reply-To: <435EA539.6040002@apache.org> References: <435DE7F0.2020907@apache.org> <653a9e7f525dd640e29c3e1036215f3b@yahoo.com> <435EA539.6040002@apache.org> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <2e68a44dde9a22ee1188a4912d724adf@yahoo.com> Content-Transfer-Encoding: 7bit From: David Jencks Subject: Re: Is double parentId inheritance allowed Date: Tue, 25 Oct 2005 17:19:09 -0700 To: dev@geronimo.apache.org X-Mailer: Apple Mail (2.622) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N On Oct 25, 2005, at 2:35 PM, Jacek Laskowski wrote: > David Jencks wrote: >> We now have multiple parents in a configuration. You can specify the >> first one with the parentID attribute. The other need to be the >> first elements in the plan, > > Thanks Dave! That was it! > > petstore:start: > [echo] Waiting for server at: > c:\projs\geronimo\sandbox\petstore/target/geronimo-1.0-SNAPSHOT > Booting Geronimo Kernel (in Java 1.4.2_09)... > [echo] PetStore has started > BUILD SUCCESSFUL > Total time: 59 seconds > Finished at: Tue Oct 25 23:31:28 CEST 2005 > > Just curious, what made you think it's going to be necessary? Is it > already used somewhere? Yes, very very heavily. As soon as I started thinking about how to break up the giant monolithic server plan into smaller pieces it became really clear that a configuration has to be able to get classes from many parent classloaders. Fortunately Dain had just developed the classloader we needed :-) I think in the post-geronimo-1.0 timeframe we may be getting an even better system that uses OSGI classloaders. > > I also wonder about the single vs multiple parent issue in a > configuration. I can't describe one at the moment, but I guess there > might be some where two GBeans are defined in two configurations and > one would need to inherit them to create a new one. Which GBean would > win? Be careful to distinguish between a gbean's implementation class and an instance of it. You want to be very very careful to make sure the class is only loaded in one classloader, but numerous configurations that are descendants of that configuration can have instances of the gbean. > > BTW Which module is it in? I'm going to test it out in some unit tests > to see if there's anything I should really be concerned about. The MultiParentClassLoader is in the kernel module. There are some examples of multiple parents in the plans we supply, but the main use is really for e.g. ears: an ear with a jetty web app and some ejbs would have the jetty and server configs as parents. See especially the defaultParentIds in the various module builders. Hope this clears things up a bit david jencks