Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 8761 invoked from network); 1 Oct 2005 16:11:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 1 Oct 2005 16:11:45 -0000 Received: (qmail 38758 invoked by uid 500); 1 Oct 2005 16:11:42 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 38704 invoked by uid 500); 1 Oct 2005 16:11: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 38693 invoked by uid 99); 1 Oct 2005 16:11:42 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 01 Oct 2005 09:11:42 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of jgenender@savoirtech.com designates 209.181.65.237 as permitted sender) Received: from [209.181.65.237] (HELO sun.savoirtech.com) (209.181.65.237) by apache.org (qpsmtpd/0.29) with SMTP; Sat, 01 Oct 2005 09:11:45 -0700 Received: from [206.197.197.27] ([206.197.197.27]) by sun.savoirtech.com (8.13.4/8.13.4) with ESMTP id j91G9lPk014418 for ; Sat, 1 Oct 2005 10:09:48 -0600 Message-ID: <433EB526.5000805@savoirtech.com> Date: Sat, 01 Oct 2005 10:11:18 -0600 From: Jeff Genender User-Agent: Mozilla Thunderbird 1.0.2 (Macintosh/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dev@geronimo.apache.org Subject: Re: [jira] Commented: (GERONIMO-518) Deploying Struts app fails on Logging ClassCastException References: <640914344.1102300702638.JavaMail.apache@nagoya> <1632517066.1128016727763.JavaMail.jira@ajax.apache.org> <46494.12.17.202.43.1128020660.squirrel@mirage.savoirtech.com> <74e15baa0510010734s7c8898ccx837f872002ebe555@mail.gmail.com> In-Reply-To: <74e15baa0510010734s7c8898ccx837f872002ebe555@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on sun.savoirtech.com X-Virus-Scanned: ClamAV 0.87/1106/Fri Sep 30 11:17:17 2005 on sun.savoirtech.com X-Virus-Status: Clean X-Virus-Checked: Checked by ClamAV on apache.org X-Old-Spam-Status: No, score=-104.0 required=5.6 tests=ALL_TRUSTED,AWL,BAYES_00, USER_IN_WHITELIST autolearn=failed version=3.0.4 X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Aaron Mulder wrote: > On 9/29/05, Jeff Genender wrote: > >>But I want to emphasize my discomfort with harcoding a commons package >>into these loaders as it ultimately takes waya control from the user. As >>long as we can back this out and do a proper exclusion list in a >>configurable plan, then I am cool with it. > > > Could you explain what you mean here? I think we've already seen that > in the case of commons logging, if you give that control to the user > (by exposing a list including commons logging) and they exercise it > (by removing commons logging from the list and including their own > commons logging JAR), they get a ClassCastException -- which is to > say, it doesn't work include your own commons logging and try to use > it instead of Geronimo's version. To answer your question, it goes back to my original statement. I think we should not be patching with hardcoding for other APIs. Why? Because we will undoubtably run into this with other packages in time. The next commons-[insert your package here] that implements a similar technique, then are we to do another hardcode? Once we start hardcoding others' APIs, then we start to become responsible for the fixes if they don't work right. The mere fact that the author of this package advocated removal from the web-inf/lib directory, in and of itself, is a clear warning that we are patching of others' issues. Minimally we should allow the user to make the final decision of whether he/she wants delegation to the server classes or not. IMHO...I would rather give more control to the user and let them decide to exclude it. I don't think that decision should be forced by us. But this is a semi-short term solution...read the answer to your next question below. > I think the only way to work around > that is a much more detailed restructuring of our ClassLoader > hierarchy. Do you have another proposal for "making commons logging > overridable"? I agree and I think David Jencks' email on this (as well as yours and my email discussions) may be the ultimate solution. The problem is essentially due to our classloader being too permissive about access. I think you pointed this out earlier, and you and I had consensus on this. The really short term solution is to hard code the commons-logging package. The semi-short term solution is a plan based exclusion list. The long term is to fix the class loaders. Do we agree on this? Jeff > > Thanks, > Aaron