Return-Path: X-Original-To: apmail-commons-dev-archive@www.apache.org Delivered-To: apmail-commons-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3375C9267 for ; Wed, 11 Apr 2012 20:48:18 +0000 (UTC) Received: (qmail 80612 invoked by uid 500); 11 Apr 2012 20:48:17 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 80520 invoked by uid 500); 11 Apr 2012 20:48:17 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 80512 invoked by uid 99); 11 Apr 2012 20:48:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Apr 2012 20:48:17 +0000 X-ASF-Spam-Status: No, hits=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of Charles_Honton@intuit.com designates 206.108.40.9 as permitted sender) Received: from [206.108.40.9] (HELO qdcapmail3.data.ie.intuit.net) (206.108.40.9) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Apr 2012 20:48:12 +0000 DomainKey-Signature: s=default; d=intuit.com; c=nofws; q=dns; h=X-SBRS:X-IronPort-AV:Received:Received:From:To:Subject: Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language: X-MS-Has-Attach:X-MS-TNEF-Correlator:x-originating-ip: Content-Type:Content-Transfer-Encoding:MIME-Version; b=NxRFXLnSWJNwQQBwWSAlP6JM8CD8/l9MpGlhDWscq6cytemXYWD+IhYC OHmm8Ij0mw92Tg6egetbvYTN+p4LjE7uyibBcjZIc+3DML5wLkBOz7RI3 hv2Wt283su0SSBi; DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intuit.com; i=Charles_Honton@intuit.com; q=dns/txt; s=default; t=1334177292; x=1365713292; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=+Xc4kz6aBp3GMnRSuamInCAN1N+8I/Zdx9M5wVVLm3o=; b=MqkRnyqjGlCN4EuyYsW7Yjp1lkNz9l3aKZ6aHq9DqkWf2a4ORQ6hNv3j I3yvdxdwtSZ5ishmYeGzhX/yAZwB3P5P3gjOOvlFz0mu7t1EQ4t8rCV3f hLQBIOCCDhgkR9K; X-SBRS: None X-IronPort-AV: E=Sophos;i="4.75,406,1330934400"; d="scan'208";a="135178792" Received: from qynprdexhubap02.data.corp.intuit.net (HELO QYNPRDEXHUBAP02.corp.intuit.net) ([10.136.19.160]) by qdcapmail3.data.ie.intuit.net with ESMTP/TLS/AES128-SHA; 11 Apr 2012 13:47:52 -0700 Received: from QYNPRDEXMBXAP04.corp.intuit.net ([fe80::e923:67f:882c:55c2]) by QYNPRDEXHUBAP02.corp.intuit.net ([fe80::9c10:d321:dd47:58f4%14]) with mapi id 14.01.0355.002; Wed, 11 Apr 2012 13:47:51 -0700 From: "Honton, Charles" To: Commons Developers List , Mark Struberg Subject: RE: [classscan],[meiyo],[sandbox] Sharing a concrete proposal for class path scanning / class metadata Thread-Topic: [classscan],[meiyo],[sandbox] Sharing a concrete proposal for class path scanning / class metadata Thread-Index: AQHNFpfLgTj6IQ+mkES4mdKxNsVYR5aThgaAgAIoMYCAAB/tQIAAfE8AgAAW9ICAAA2aAP//oWKw Date: Wed, 11 Apr 2012 20:47:51 +0000 Message-ID: <79E039646D52C14E8807917F748999F004CC2F72@QYNPRDEXMBXAP04.corp.intuit.net> References: <79E039646D52C14E8807917F748999F004CC2A4D@QYNPRDEXMBXAP04.corp.intuit.net> <1334169996.93816.YahooMailNeo@web171501.mail.ir2.yahoo.com> In-Reply-To: <1334169996.93816.YahooMailNeo@web171501.mail.ir2.yahoo.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.136.18.4] Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org Mark, Please look at my implementation - http://chonton.github.com/meiyo-sandbox/= (I've accidently trashed my source respository, which I'll clean up tomorr= ow.) You can see the code through the javadoc and jxr reports. The implementation tracks classes per location (jar or folder), with multip= le locations per classloader, up to and including the bootstrap classloader= . Finding class information delegates the search up the parent chain, mirr= oring the classloader pattern.=20 Additionally, the implementation includes a registry of classloader informa= tion, so that multiple users need not introspect each classloader multiple = times. The code allows gc reclamation of the bcel objects to minimize memo= ry footprint. The registry holds weak references to the classloaders, so t= hat the classloaders may be reclaimed. Regards, chas -----Original Message----- From: Mark Struberg [mailto:struberg@yahoo.de]=20 ... We need to provide class scanning on a per-ClassLoader level. Many fram= eworks (EJB, CDI, ...) need to take care about Class visibility and might e= ven have to deal with 'shared-contexts'. Thus the commons-classscan as well= as xbean-finder must=A0 be aware of the ClassLoader hierarchy. Especially = in multi-webapp environments this might (as side effect) also bring a prett= y neat performance improvement as we don't need to scan those shared class = paths redundantly! --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org